是否有一种方法可以编译/构建我们的应用程序一次,但能够部署到IIS(使用进程内托管模型(或使用Kestrel独立运行?
这是一个应用程序,在某些情况下可能是云托管的(Azure(,但也可以独立打包和安装,本质上是内联网场景中基于桌面的应用程序服务网页。
目前,证书文件和密码加载在IWebHostBuilder实现中:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureServices(services =>
{
services.AddSingleton<ConfigurationContainer>(ConfigurationContainer);
})
.UseKestrel(options =>
{
options.ConfigureEndpointDefaults(listenOptions =>
{
if (_useHttps)
listenOptions.UseHttps(_certificateFile, _certificatePword);
});
})
.UseUrls("xxxxx")
.UseStartup<Startup>();
目标如上所述-能够使用(进程内托管(在IIS中托管相同的构建,或者使用Kestrel独立运行。
理论上,dll在两者中的作用相同。因为您选择在C#中配置Kestrel选项,所以您可能会在IIS中遇到有趣的场景。尝试在appsettings.json:中配置Kestrel和URL
"Kestrel": {
"EndPoints": {
"Http": {
"Url": "http://localhost:5555"
}}}
然后在IIS中,使用IIS配置这些详细信息。
另请参阅https://stackoverflow.com/a/52077756/702931