zoukankan      html  css  js  c++  java
  • [转]Solutions of Error "PageRequestManagerTimeoutException"

    Introduction

    Recently, I encountered a weird problem. A method invoked a store procedure that expends more than 90 seconds, and the button which invokes that method is inside an updatepanel. The error message is "SysWebForms.PageRequestManagerTimeoutException: The server request timed out.".

    Background

    After doing a search in the internet, I found it is caused by the property AsyncPostBackTimeout of ScriptManager. It has an integer value that represents the time-out in seconds. The default value of the AsyncPostBackTimeOut property is 90 seconds. But my procedure will last for 200 seconds.

    Solution One

    Most articles suggested adding the property-value likes "AsyncPostBackTimeout=360000" in ASPX control.

    Example:

    <asp:ScriptManager ID= "ScriptManager1 " AsyncPostBackTimeOut= "360000 " runat= "server " />

    Solution Two

    But recently I am using DNN framework. If using "AJAX.RegisterScriptManager()", there shouldn't be any ScriptManager control exists in the DNN module file. But we can get the current registered ScriptManage object and set the AsyncPostBackTimeout property, or use the SetScriptManagerProperty() method through the following steps.

    Example:

    if (AJAX.IsInstalled()) {     AJAX.RegisterScriptManager();     ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);     scriptManager.AsyncPostBackTimeout = 360000; }

    OR: use the SetScriptManagerProperty method in DotNetNuke.Framework.AJAX class.

    Example:

    if (AJAX.IsInstalled()) {     AJAX.RegisterScriptManager();     AJAX.SetScriptManagerProperty(this.Page, "AsyncPostBackTimeout", new Object[] { 360000 }); }

    Solution Three

    Actually, we can hide this problem of "PageRequestManagerTimeoutException" by adding the below javascript. But it is not recommended.

    Example:

    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function EndRequestHandler(sender, args) {   if (args.get_error() != undefined)    {        else if(args.get_error().name === 'Sys.WebForms.PageRequestManagerTimeoutException')        {             args.set_errorHandled(true);        }        else        {            // not this kind of error so let the default behavior happen.        }    } }

    If you have any questions, don’t feel hesitate to ask me.

  • 相关阅读:
    010_STM32CubeMXADC
    009_STM32CubeMXPWM
    008_STM32CubeMX定时器中断
    007_STM32CubeMX外部中断
    006_STM32CubeMX按键输入
    005_STM32CubeMX串口
    004_STM32CubeMX官方例程
    003_STM32CubeMX点灯
    002_STM32CubeMX配置基础工程
    006_word发表博客到博客园中
  • 原文地址:https://www.cnblogs.com/LeoWong/p/2134330.html
Copyright © 2011-2022 走看看