我从一个 UpdatePanel
发送请求,但需要超过90秒才能完成。我遇到了这个超时错误:
Microsoft JScript运行时错误: Sys.WebForms.PageRequestManagerTimeoutException: 服务器请求已超时。
有没有人知道如何增加调用超时前等待的时间?
我从一个 UpdatePanel
发送请求,但需要超过90秒才能完成。我遇到了这个超时错误:
Microsoft JScript运行时错误: Sys.WebForms.PageRequestManagerTimeoutException: 服务器请求已超时。
有没有人知道如何增加调用超时前等待的时间?
在ScriptManager中有一个属性可以设置超时时间(以秒为单位),默认值为90秒。
AsyncPostBackTimeout="300"
在我的情况下,ScriptManager对象是在主页文件中创建的,然后与内容页文件共享。因此,要在内容页中更改ScriptManager.AsyncPostBackTimeout属性,我必须在内容页的aspx.cs文件中访问该对象:
protected void Page_Load(object sender, EventArgs e)
{
. . .
ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
_scriptMan.AsyncPostBackTimeout = 36000;
}
RadScriptManager
也适用吗? - Nagib Mahfuz这个方法奏效了(基本上就是忽略所有超时):
<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>
ReferenceError: Sys未定义
- Musakkhir SayyedhttpRuntime maxRequestLength="1024000" executionTimeout="999999"
第二步:将以下设置添加到您的网页 ScriptManager 中:AsyncPostBackTimeout ="360000"
这样就解决了您的问题。如果需要更改IIS中的ASP脚本超时时间,这是可以进行配置的。
具体位置在您的网站、虚拟目录、配置按钮中,然后在选项标签页上。
或者通过设置Server.ScriptTimeout属性来实现。
如果你只是想让请求被丢弃,有可能永远不会完全执行,那么这个方法也可以。
在ScriptManager标签中添加AsyncPostBackTimeOut属性,将默认超时时间从90秒更改为适合你的应用程序的更合理的时间。
此外,进一步研究如何加快接收调用的Web服务。在互联网时间中,90秒几乎等于无限。
连接字符串有一个 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="6000"
<asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000">
</asp:ToolkitScriptManager>
您可以在 .cs 文件中调用存储过程时,在 SqlCommand
中设置超时。
command.CommandTimeout = 30*1000;
希望你有解决方案!