ASP.NET UpdatePanel超时

时间:2008-10-01 18:18:58

标签: asp.net ajax updatepanel

我正在UpdatePanel发出一个超过90秒的请求。我收到此超时错误:

  

Microsoft JScript运行时错误:   Sys.WebForms.PageRequestManagerTimeoutException:服务器请求   超时了。

有人知道是否有办法增加通话超时前的时间?

7 个答案:

答案 0 :(得分:87)

ScriptManager上有一个属性:

AsyncPostBackTimeout="300"

答案 1 :(得分:42)

在我的例子中,ScriptManager对象是在Master Page文件中创建的,然后与内容页面文件共享。因此,要更改内容页面中的ScriptManager.AsyncPostBackTimeout属性,我必须访问内容页面的aspx.cs文件中的对象:

protected void Page_Load(object sender, EventArgs e)
{
     . . . 
     ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
     _scriptMan.AsyncPostBackTimeout = 36000;
}

答案 2 :(得分:11)

这样做了(基本上只是忽略所有超时):

<script type="text/javascript"> 
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) { 
            if (args.get_error() && args.get_error().name === 'Sys.WebForms.PageRequestManagerTimeoutException') { 
                            args.set_errorHandled(true); 
            } 
        }); 
    </script> 

答案 3 :(得分:7)

请按照以下步骤操作:

第1步:在 web.config 中,设置httpRuntime maxRequestLength="1024000" executionTimeout="999999"

步骤2:将以下设置添加到网页的ScriptManager:AsyncPostBackTimeout ="360000"

这将解决您的问题。

答案 4 :(得分:2)

这可以通过更改IIS中的ASP脚本超时来配置。

它位于您的网站,虚拟目录,配置按钮的属性中,然后位于选项选项卡上。

或通过设置Server.ScriptTimeout属性来设置它。

答案 5 :(得分:1)

嗯,我想如果你只是希望丢弃的请求有可能它从未完全执行过那就行了......

将AsyncPostBackTimeOut属性添加到ScriptManager标记,以将默认超时从90秒更改为更适合您应用程序的内容。

此外,请考虑更改接收呼叫的Web服务以加快移动速度。互联网时间90秒也可能是无限的。

答案 6 :(得分:0)

您遇到的问题是您的应用程序在SQL数据库查询上遇到超时。它比默认值花费更多时间来返回输出。所以你需要增加ConnectionTimeout属性。

您可以通过多种方式实现:

  1. 连接字符串具有ConnectionTimeout属性。它是一个属性,用于确定代码等待连接打开数据库的最大秒数。您可以在web.config中的连接字符串部分设置连接超时。

    <connectionstrings>
        <add name="ConnectionString" 
             connectionstring="Database=UKTST1;Server=BRESAWN;uid="      system.data.sqlclient="/><br mode=" hold=" /><br mode=" html="> <asp:ToolkitScriptManager runat=" server=" AsyncPostBackTimeOut=" 6000="><br mode=">
        </add>
    </connectionstrings>
    
  2. 您可以将AsyncPostBackTimeout="6000"放入.aspx页面

    <asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000">
    </asp:ToolkitScriptManager>
    
  3. 您可以在SqlCommand中设置超时,您在.cs文件中调用存储过程。

    command.CommandTimeout = 30*1000;
    
  4. 希望你有一个解决方案!