我的情况如下:我有一个 ASP.NET Core REST API,它使用通过 IIS 反向代理的 Kestrel(通过 AspNetCoreModule)。在一个特殊的端点(硬件设备需要)我发送一个'连接:关闭 '-HTTP header 。在所有其他端点上,我不发送此 header 。因此,当我以独立模式(没有 IIS)启动 REST API 时,一切都按预期工作。但是,一旦我在 IIS 上运行它,IIS 就不会转发 Connection header ,尽管所有其他 header 都已正确转发。禁用所有端点的保持事件不是一种选择。到目前为止,我尝试的是为 IIS 安装重写模块并创建一个出站规则,它匹配连接 header 设置为关闭并在匹配时重置它。似乎 IIS 忽略了 RESPONSE_Connection 和 HTTP_连接 服务器变量(我尝试过具有相同规则的其他 header 并且它有效)。
最好的解决方案是甚至不安装重写模块。
提前感谢任何解决方案。
最佳答案
你有没有试过这个:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseCors(option =>
option.AllowAnyHeader()
}));
}
和
app.UseCors
应该在 app.UseRouting();
之后你也可以使用:
.WithExposedHeaders(new string[] {
"HeaderName",
用于自定义标题。
关于iis - 如何有条件地在 IIS 中禁用 Keep-Alive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40762594/