Introduction
Recently, I encountered a weird problem. A method invoked a stored 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 on 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 the ASPX control.
Example:
<asp:ScriptManager ID= "ScriptManager1 "
AsyncPostBackTimeOut= "360000 " runat= "server " />
Solution Two
But recently I am using the DNN framework. If using "AJAX.RegisterScriptManager()
", there shouldn't be any ScriptManager
control that exists in the DNN module file. But we can get the current registered ScriptManager
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
{
}
}
}
History
- 13th January, 2010: Initial post