iis - 如何有条件地在 IIS 中禁用 Keep-Alive?

标签 iis asp.net-core reverse-proxy keep-alive kestrel-http-server

我的情况如下:我有一个 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/

相关文章:

powershell - 导入带有 "Import-PfxCertificate"的证书会导致证书无效

c# - 引用 5MB .Net 程序集是否有任何性能注意事项?

ssl - 访问某些文件夹时要求客户端证书IIS7.5

google-chrome - 带有 Cookie 的 Asp.net 核心 Chrome 问题

asp.net-core - 如何在 ASP.NET Core Identity 中允许空用户名

node.js - AWS ELB 对比用于负载平衡的 node-http-proxy 反向代理

.net - 如何在 IIS 中使用性能计数器和 WCF 服务?

asp.net-core - .Net Core 3.0 SignalR客户端连接问题

apache - Centos 6 上的 Apache 反向代理

ssl - 为什么所有 SSL 子域都指向同一个 IP