有没有办法告诉IIS / ASP.NET不允许某些请求保持活动状态?或者甚至整个网站,如果这真的是唯一的方法吗?
答案 0 :(得分:4)
对于整个站点,使用IIS 7 ....
<configuration>
<system.webServer>
<httpProtocol allowKeepAlive="false" />
</system.webServer>
</configuration>
<强> PS。强>
我意识到这个问题只是关于如何禁用该功能。但是,我认为值得一提的是,禁用KeepAlive是我试图解决的问题的一个红色鲱鱼。我有一个问题,即jQuery Ajax POST无法将正文内容发送到服务器。虽然启用/禁用KeepAlive似乎确实影响了我可以重现我的问题,但实际修复是在站点根目录禁用Windows身份验证。这是因为浏览器(幕后)在网站的根目录(甚至在您的应用程序文件夹之外)发送了对favicon.ico的请求,并且如果您在该级别打开了Windows Auth,则NTLM Authenticate握手开始, (从技术角度来说)它可以解决所有问题。
所以我最终从我的配置文件中删除了这一行,以便它可以作为默认设置运行,并启用了KeepAlive ......顺便提一下,这样可以提高性能。
答案 1 :(得分:3)
非常确定无法在请求级别完成。
在IIS 6.0中,it was exposed in a tab of IIS properties。在IIS 7中,它们类似于hid it。
答案 2 :(得分:1)
如果你真的想这样做,请调整this answer中的IHttpModule来调用Response.Close处理程序中的HttpApplication.EndRequest。
答案 3 :(得分:0)
IIS 6.0中默认启用HTTP Keep-Alives,符合HTTP Keep-Alives的HTTP / 1.1规范。只要ConnectionTimeout配置数据库属性指定(默认值为120秒),IIS就会保持打开非活动连接。
您可以通过以下链接禁用HTTP Keep Alive,它是为了启用您必须执行反向禁用。