我们有一个 ASP.NET 应用程序,用于向用户返回图像文件。当用户请求图像时,该应用程序会在标头中设置适当的内容信息,并返回字节。我们发现,如果浏览器提示用户打开或保存图像,则 IIS 请求将保持“发送响应”状态,直到用户选择其中一个提示选项。
问题在于有些用户没有关闭提示,导致请求无法完成。一旦发生这种情况,其他请求也会无法完成。最终,所有可用线程都会被用完。
有没有办法强制 IIS 在超时后强制终止请求?我们尝试设置“executionTimeout”,但这没有任何效果,因为请求线程在等待客户端回答提示时没有做任何工作。
连接超时设置为默认值 120 秒。
答案1
您的连接超时(HTTP KeepAlive 超时)是多少?
网站 > 连接限制 > 连接超时。默认值为 120 秒。(不要与应用程序池超时混淆)。有时使用会话亲和性(粘性会话)的应用程序的超时值会更高。将其设置得太高会增加连接数。
您还应确保拥有最新的 http.sys热修复已安装,版本 6.1.7601.21886。