这可能与 ColdFusion 以外的平台有关。
IIS 6 日志报告“耗时”(30 分钟)比连接超时中为 ColdFusion 页面的多个请求设置的 120 秒长得多。
我认为 ColdFusion 目前没有反应。我希望 IIS 停止请求而不是等待这么久。
是否存在强制执行此操作的 IIS 设置?
这可能与 ColdFusion 以外的平台有关。
IIS 6 日志报告“耗时”(30 分钟)比连接超时中为 ColdFusion 页面的多个请求设置的 120 秒长得多。
我认为 ColdFusion 目前没有反应。我希望 IIS 停止请求而不是等待这么久。
是否存在强制执行此操作的 IIS 设置?
这种情况也可以认为是客户端引起的慢速 HTTP DoS攻击。IIS 没有提供太多的保护(至少对于缓慢的 POST 正文),因为 Microsoft 认为它是一个协议错误,而不是 IIS 的弱点。虽然我认为在这种情况下是你的服务器自己做的。
检查事项:
您没有提到是请求慢还是服务器响应慢。如果响应缓慢,您可以尝试调整 MinFileBytesPerSec参数。默认情况下,如果客户端的下载速度低于每秒 240 字节,它将断开连接。
请记住,120 秒的 IIS 超时是空闲超时。只要客户端在 120 秒内发送或接收几个字节,该计时器就会不断重置。
您没有提到这种漫长的等待是在所有页面上发生还是总是在几个特定页面上发生。您的 CF 脚本可能正在建立另一个外部连接,例如CFQUERY
,它不受 CF 超时的影响,但受其连接的服务器超时的影响。在内部使用 timeout 属性CFQUERY
可能会阻止这种情况。
你也没有提到你的 Coldfusion 设置是什么。可能是 Coldfusion JRUN 连接器 ISAPI 过滤器忽略了 IIS 超时设置,因此您应该检查Coldfusion Administrator 中的设置。特别是检查Timeout Requests after是否已更改。如果它仍然是默认的 60 秒,请检查您的代码以查看它是否已被覆盖,例如
<cfsetting requestTimeOut = "3600">
最后,您可能不得不通过用 CFML 替换一些 cfscript 标记来解决CF 的特殊行为问题。requestTimeout
不是真的,因为一旦将请求传递给 cf,iis 就不再处理该请求。您可以尝试使用应用程序池超时,看看是否可以引发错误。