![经典 ASP 页面运行时间超过 Server.ScriptTimeout](https://linux22.com/image/528491/%E7%BB%8F%E5%85%B8%20ASP%20%E9%A1%B5%E9%9D%A2%E8%BF%90%E8%A1%8C%E6%97%B6%E9%97%B4%E8%B6%85%E8%BF%87%20Server.ScriptTimeout.png)
我们遇到一个问题,即使 Server.ScriptTimeout 值为 90 秒,ASP 页面仍会运行 30-45 分钟。我们甚至通过将 Server.ScriptTimeout 的值打印到页面上来验证这一点,以确保我们不会以某种方式更改该值。
我们正在研究导致某些页面随机运行这么长时间的原因。但我还想确定 ASP 页面的运行时间为何能够超过 Server.ScriptTimeout 值?
答案1
似乎脚本超时在某个时候被覆盖了。为了缩小范围,如果您尝试在另一个新页面上运行长时间运行的任务,会发生什么?在传统 ASP 中暂停是相当困难的,但可以尝试 WaitFor:http://www.scriptswave.com/free-scripts-download/waitfor/5932.html
如果您可以确认在并行页面中脚本超时得到遵守,请尝试复制实时页面并在顶部添加等待,看看会发生什么...然后将等待向下移动代码,直到最终它不遵守脚本超时值。
这将有助于缩小范围,确定问题是否与该服务器上的所有页面有关,还是只与一个页面有关。如果是与一个页面有关,则将有助于确定页面中超时值的变化从哪里开始。
答案2
只是在这个问题上摸索一下,但如果 ASP 和Server.ScriptTimeout
PHP 类似max_execution_time
,并且你的运行时间过长的脚本涉及对远程服务的调用,那么你的超时值很有可能不是考虑 CPU 在等待其他服务调用时的空闲时间。(Server.ScriptTimeout MSDN 条目在这种情况下,Server.ScriptTimeout 的行为有点稀疏)
当 Web 服务意外响应(即重定向循环)时,这会产生问题,因此,如果您的脚本依赖于远程服务,那么调试对远程服务的调用可能也是一个好主意。
答案3
自从我使用 Classic ASP 以来已经有一段时间了...您看到的内容与Server.ScriptTimeout
您在 IIS 管理器中看到的内容相匹配ASP 脚本超时值?(假设该链接使用 IIS6)