我正在从 UpdatePanel 发出请求,这需要超过90秒。我收到此超时错误:

  

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

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

有帮助吗?

解决方案

ScriptManager上有一个属性:

AsyncPostBackTimeout="300"

其他提示

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

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

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

<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> 

请按照以下步骤操作:

步骤1:在 web.config 中,设置 httpRuntime maxRequestLength =&quot; 1024000&quot; executionTimeout = QUOT; 999999&QUOT;

步骤2:将以下设置添加到网页的ScriptManager中: AsyncPostBackTimeout =&quot; 360000&quot;

这将解决您的问题。

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

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

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

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

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

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

您遇到的问题是您的应用程序在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. 您可以在 .aspx 页面中 AsyncPostBackTimeout =&quot; 6000&quot;

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top