Asp.net core 有没有一种方法可以停用NetCore3.X应用程序中的IIS集成,而不必从CreateDefaultBuilder复制代码
在3.0版及更高版本的Net Core中,可以通过以下方式设置web应用程序:Asp.net core 有没有一种方法可以停用NetCore3.X应用程序中的IIS集成,而不必从CreateDefaultBuilder复制代码,asp.net-core,.net-core,kestrel,Asp.net Core,.net Core,Kestrel,在3.0版及更高版本的Net Core中,可以通过以下方式设置web应用程序: public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWeb
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>();
});
publicstaticvoidmain(字符串[]args)
{
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.ConfigureAppConfiguration(配置=>
{
var settingsFile=Environment.GetEnvironmentVariable(“应用程序设置”);
如果(!string.IsNullOrWhiteSpace(settingsFile))
{
config.AddJsonFile(设置文件,可选:false);
}
});
webBuilder.UseStartup();
});
虽然使用CreateDefaultBuilder
非常方便,并抽象了大量样板文件,但它还强制启用应用程序的IIS集成。在我的例子中,我想使用原始Kestrel运行应用程序,而不需要IIS代理请求
如果我不想使用IIS集成,那么从CreateDefaultBuilder()
中提取所有样板文件是我唯一的选择,还是我可以以某种方式覆盖它?我一直在研究这个方法的源代码,但我找不到解决这个问题的方法
除了自己编写所有的设置代码之外,你知道更容易实现这一点的方法吗