我的 Web 应用程序 (ASP.NET 4.0) 从客户端调用服务器(使用 AjaxPro 库,但我认为这没有任何区别)。该调用正在服务器上启动一个可能长时间运行的任务——有时可能需要大约 5 分钟才能完成。这次我很乐意等待,但由于某种原因,我的请求在正好 90 秒后被中断 - 2 m 60 秒(根据 FireBug)。它发回服务不可用 503 消息。仅当我在 IIS (7.0) 上托管我的应用程序时才会发生这种情况,它在我的本地 PC 上以 ASP.NET 开发服务器上的 VS2010 的调试模式运行而没有问题(即处理所有 5 分钟的请求而不会中断它)。
到目前为止,我已经尝试了几件事:
- 我增加了 AjaxPro 全局超时:AjaxPro.timeoutPeriod = 1000000;
我修改了我的 web.config 文件,如下所示:
<httpRuntime maxRequestLength="102400" executionTimeout="360" /> <sessionState timeout="60"></sessionState>
在 IIS 管理器 -> 站点 -> 我的网站 -> 高级设置中,我增加了连接超时(秒)属性的值。
- 在应用程序的应用程序池 -> 高级设置中,我增加了所有可能的超时:
- 我试图在服务器端处理程序的代码中增加 HttpContext.Current.Server.ScriptTimeout。
注意似乎有帮助。它在 ASP.NET 开发服务器上运行良好,但在 IIS 上它只是在 90 秒后准确地切断了我的请求。
有什么想法吗,伙计们?