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

pxd*_*dev 10 iis reverse-proxy keep-alive kestrel-http-server asp.net-core

我的情况如下:我有一个ASP.NET Core REST API,它使用Kestrel通过IIS反向代理(通过AspNetCoreModule)。在一个特殊的端点(由硬件设备要求)上,我发送一个“ 连接:关闭 ” -HTTP标头。在所有其他端点上,我不发送此标头。因此,当我以独立模式(没有IIS)启动REST API时,一切都按预期工作。但是,只要我在IIS上运行它,IIS便不会转发Connection标头,尽管所有其他标头都可以正确转发。禁用所有端点的保持活动不是一种选择。到目前为止,我一直在尝试为IIS安装重写模块,并创建一个出站规则,使其与Connection标头设置匹配,以关闭并在匹配时将其重置。看来IIS会忽略RESPONSE_ConnectionHTTP_CONNECTION服务器变量(我用相同的规则尝试了其他标头,并且它起作用了)。

最好的解决方案是甚至不安装重写模块。在此先感谢您提供任何解决方案。

小智 0

你有没有尝试过这个:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
       app.UseCors(option =>
            option.AllowAnyHeader()
                }));
     }
Run Code Online (Sandbox Code Playgroud)

并且app.UseCors应该在之后app.UseRouting();

你也可以使用:

.WithExposedHeaders(new string[] {
                    "HeaderName",
Run Code Online (Sandbox Code Playgroud)

用于自定义标头。