【问题标题】:How can I increase the timeout for an ASP.NET Ajax PageMethod?如何增加 ASP.NET Ajax PageMethod 的超时时间?
【发布时间】:2011-01-27 16:59:58
【问题描述】:

我有一个 ASP.NET 页面,其中有几个静态方法,在代码旁边用 [WebMethod] 装饰,而这些方法又是使用 PageMethods.MyMethodName(myParameter, myOnCompleteHandler, myOnErrorHander); 从 javascript 调用的。

其中一个方法被多次调用,由于调用量大,运行时间可能会很长。目前,该方法运行正常,但需要超过 5 分钟才能完成的调用会超时。我想将时间跨度增加到 10 分钟。

我试过了:

  • ScriptManager.AsyncPostBackTimeout = 600;
  • Server.ScriptTimeout = 600;
  • this.Page.AsyncTimeout = new TimeSpan(0,10,0);
  • Sys.Net.WebRequestManager.set_defaultTimeout(600000); 在 JavaScript 中

【问题讨论】:

    标签: asp.net asp.net-ajax pagemethods


    【解决方案1】:

    将以下行添加到您的 web.config 的 system.web 部分。

    <httpRuntime executionTimeout="3600" maxRequestLength="2147483647" />
    

    回复较晚,但也许这会对下一个人有所帮助。

    【讨论】:

    • executionTimeout 控制http运行时在服务器上的执行超时,在此之前会抛出http运行时超时异常。
    【解决方案2】:

    正确答案是here,因为 AJAX 超时由脚本管理器控制,而不是 http 执行超时。

    您需要获取脚本管理器控件(在代码或标记中)并根据需要将 AsyncPostBackTimeout 属性设置为合适的值。

    AsyncPostBackTimeout="300"
    

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多