58

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

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

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

4

7 回答 7

92

ScriptManager 上有一个属性,允许您以秒为单位设置超时。默认值为 90 秒。

AsyncPostBackTimeout="300"
于 2008-10-01T18:31:02.607 回答
47

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

protected void Page_Load(object sender, EventArgs e)
{
     . . . 
     ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
     _scriptMan.AsyncPostBackTimeout = 36000;
}
于 2010-03-16T16:33:24.810 回答
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> 
于 2008-10-01T18:27:14.160 回答
9

请按照以下步骤操作:

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

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

这将解决您的问题。

于 2010-05-21T07:28:34.407 回答
2

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

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

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

于 2008-10-01T18:25:12.933 回答
1

好吧,我想如果你只是想把请求扔掉,它可能永远不会完全执行……

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

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

于 2008-10-01T18:31:50.280 回答
1

您面临的问题是您的应用程序在 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;
    

希望你有解决办法!

于 2014-05-30T06:52:54.093 回答