NET Web宿主(Web Host) 【下】

重载配置

       使用Configuration来配置一个Web 宿主。在下面的示例中,宿主配置以可选的形式在hostsettings.json 文件中指定。从hostsettings.json文件中加载的任何配置都可能被命令行参数重写。内置的配置(config 文件)被UseConfiguration 用来配置宿主。IWebHostBuilder 配置被添加到app的配置中,然而反过来却是不正确的。ConfigureAppConfiguration 不会影响IWebHostBuilder 配置。

      首先我们重载由UseUrls 以hostsettings.json 文件形式提供的配置,然后是命令行参数:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args)
    {
        var config = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("hostsettings.json", optional: true)
            .AddCommandLine(args)
            .Build();

        return WebHost.CreateDefaultBuilder(args)
            .UseUrls("http://*:5000")
            .UseConfiguration(config)
            .Configure(app =>
            {
                app.Run(context => 
                    context.Response.WriteAsync("Hello, World!"));
            });
    }
}

        hostsettings.json

{
    urls: "http://*:5005"
}

       注意:UseConfiguration 只会从提供的IConfiguration中拷贝键值到宿主构造器配置中。因此,为JSON, INI, and XML设置文件设置reloadOnChange: true是没有任何效果的。

猜你喜欢

转载自www.cnblogs.com/qianxingmu/p/12455008.html