在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()
中提取所有样板的唯一选择,还是可以用某种方式覆盖它?我一直在研究这种方法的源代码,但找不到解决该问题的方法。
除了自己编写所有设置代码之外,您是否知道一种更简单的方法来实现此目的?