【发布时间】:2019-09-15 02:16:30
【问题描述】:
我目前在 Kestrel(本地)或 IIS InProcess(生产)下运行我的应用程序。
return WebHost.CreateDefaultBuilder(args)
.ConfigureKestrel(options => options.AddServerHeader = false)
.UseIIS()
.UseStartup<Startup>();
我希望能够在运行时在控制器中获取托管服务器名称,以便实现以下目标:
if (hostingServer == "kestrel")
{
DoSomething();
}
else
{
DoSomethingElse();
}
在这种特定情况下,它是为了解决在 Kestrel 的响应标头中不支持非 ascii 字符的事实。理想情况下,我会删除非 ascii 标头,但目前它是旧版互操作性所必需的。
任何帮助将不胜感激。
【问题讨论】:
-
你不能在启动时使用
environment.IsDevelopment()来实现吗? -
这就是我目前正在做的一种解决方法,但我们的验收测试在生产环境下使用 Kestrel 运行(可能应该暂存)
标签: c# iis asp.net-core .net-core kestrel-http-server