ASP.NET UpdatePanel超时
-
03-07-2019 - |
题
我正在从 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属性。
您可以通过多种方式实现:
-
连接字符串具有
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>
-
您可以在
.aspx
页面中AsyncPostBackTimeout =&quot; 6000&quot;
<asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000"> </asp:ToolkitScriptManager>
-
您可以在
SqlCommand
中设置超时,您可以在.cs文件中调用存储过程。command.CommandTimeout = 30*1000;
醇>
希望你有一个解决方案!