ASP.NET UpdatePanel超时
我从UpdatePanel
发出的请求超过了90秒。 我得到这个超时错误:
Microsoft JScript运行时错误:Sys.WebForms.PageRequestManagerTimeoutException:服务器请求超时。
有没有人知道是否有办法增加通话时间之前的时间?
ScriptManager上有一个属性:
AsyncPostBackTimeout="300"
在我的情况下,ScriptManager对象是在主页面文件中创build的,然后与内容页面文件共享。 因此,要更改Content Page中的ScriptManager.AsyncPostBackTimeout属性,我必须访问Content Page的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>
请按照以下步骤操作:
第一步:在web.config中设置httpRuntime maxRequestLength="1024000" executionTimeout="999999"
第2步:将以下设置添加到您的网页的ScriptManager: AsyncPostBackTimeout ="360000"
这将解决您的问题。
这可以通过更改IIS中的ASP脚本超时来configuration。
它位于您的网站的属性,虚拟目录,configurationbutton,然后在选项选项卡上。
或者通过设置Server.ScriptTimeout属性进行设置。
那么,我想这会工作,如果你只是希望抛出的请求与潜力,它从来没有完全执行…
将一个AsyncPostBackTimeOut属性添加到ScriptManager标记中,将您的默认超时从90秒改为适用于您的应用程序的更合理的时间。
此外,请考虑更改接收呼叫的Web服务以更快地移动。 在互联网时间90秒也可能是无限的。
您面临的问题是当您的应用程序运行到SQL数据库查询的超时。 返回输出需要的时间比默认的要多。 所以你需要增加ConnectionTimeout属性。
你可以用几种方法做到这一点:
-
连接string具有
ConnectionTimeout
属性。 这是一个属性,它决定了您的代码将等待连接数据库的最大秒数被打开。 您可以在web.config
中的连接string部分中设置连接超时。<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>
-
您可以在
.aspx
页面中放置AsyncPostBackTimeout="6000"
<asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000"> </asp:ToolkitScriptManager>
-
您可以在
SqlCommand
设置超时,在.cs文件中调用存储过程。command.CommandTimeout = 30*1000;
希望你有一个解决scheme!