我在运行 ASP.NET 4.5 Web 应用程序的实时服务器上遇到脚本没有超时的问题。
应用程序的 web.config 具有<compilation debug="false" />
和不具有<httpRuntime executionTimeout="" />
值集。machine.config 中的任何一个都没有任何值。
所以理论上脚本应该在默认的 110 秒内超时。
但是,在实时服务器上输出 Server.ScriptTimeout 的值表明该值为 30000000 秒,这是<compilation debug="true" />
.
我可以确认 ScriptTimeout 也没有在代码中的任何地方设置。
是否还有其他地方可以设置此值或在某处覆盖该值?也许在 IIS 的某个地方?我查看了 IIS 配置,但没有什么特别突出的。
非常感谢
更新
按照 Jim Mischel 链接上的说明(谢谢)反编译在我们的实时服务器上运行的预编译程序集后,我发现 30000000 的 ScriptTimeout 实际上被放入了 WebForm 页面类的构造函数中。
[DebuggerNonUserCode]
public ProblemPage_aspx()
{
// Initialisation code
base.Server.ScriptTimeout = 30000000;
}
当<compilation debug="false" />
这行代码从类中省略时运行。
由此我只能假设我们正在调试模式下预编译应用程序。我会做一些进一步的调查,但看起来这毕竟可能不是环境配置问题。