ASP.Net AJAX超时虽然请求在超时持续时间之前很久就完成了

时间:2010-02-15 14:42:02

标签: asp.net ajax

我有一个ASP.Net应用程序,可以在报告时检索AJAX请求。报告可以运行很长时间,因此我将asyncpostbacktimeout中的<asp:ScriptManager />设置为600.但是,当我尝试运行报告时,如果运行时间超过90秒,则无法返回。我可以在IIS日志中看到POST请求以200状态成功,我可以看到所花费的时间远远少于600.

网页尽职地等待整个600秒,然后返回超时错误:

  

错误:   Sys.WebForms.PageRequestManagerTimeoutException:   服务器请求超时。

我应该在IIS中检查任何设置吗?连接超时为900秒。

干杯, 伊恩

1 个答案:

答案 0 :(得分:2)

你需要在几个地方设定时间......

1)在IIS网站连接超时:

这是经过的服务器断开请求客户端即浏览器的时间(以秒为单位)。确保该值略高于您的要求。确保在此之后重新启动IIS。

2)在web.config <httpRuntime />

httpRuntime executionTimeout =“1000”

这是经过的ASP.Net引擎停止执行处理页面循环的时间(以秒为单位)。确保正确设置。

3)在web.config <sessionState timeout="20"/>

确保设置得当。默认值为20分钟,因此不应与您的值相反,即600秒

4)<authentication mode="....." >    在web.config中,您的身份验证属性中的超时(以秒为单位)。如果您使用任何身份验证/授权

5)最后在脚本管理器中的Asyncpostbacktimeout属性值(以秒为单位)