有没有一种方法可以停用Net Core 3.X应用程序中的IIS集成,而不必从CreateDefaultBuilder中复制代码

时间:2019-12-03 20:42:53

标签: asp.net-core .net-core kestrel

在Net Core 3.0版及更高版本中,可以通过以下方式设置Web应用程序:

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

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.ConfigureAppConfiguration(config =>
            {
                var settingsFile = Environment.GetEnvironmentVariable("APP_SETTINGS");
                if (!string.IsNullOrWhiteSpace(settingsFile))
                {
                    config.AddJsonFile(settingsFile, optional: false);
                }
            });
                webBuilder.UseStartup<Startup>();
            });

虽然非常方便地使用CreateDefaultBuilder并抽象出许多样板,但它也强制为该应用程序启用IIS集成。就我而言,我想使用原始的Kestrel来运行应用程序而无需IIS代理请求。

如果我不想使用IIS集成,是从CreateDefaultBuilder()中提取所有样板的唯一选择,还是可以用某种方式覆盖它?我一直在研究这种方法的源代码,但找不到解决该问题的方法。

除了自己编写所有设置代码之外,您是否知道一种更简单的方法来实现此目的?

0 个答案:

没有答案