我正在发出一个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;
}
这成功了(基本上只是忽略了所有超时):
<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="1024000" executionTimeout="999999"
第 2 步:将以下设置添加到网页的 ScriptManager:AsyncPostBackTimeout ="360000"
这将解决您的问题。
这可以通过更改 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>
你可以把AsyncPostBackTimeout="6000"
页面.aspx
<asp:ToolkitScriptManager runat="server" AsyncPostBackTimeOut="6000">
</asp:ToolkitScriptManager>
SqlCommand
您可以在 .cs 文件中调用存储过程的地方设置超时。
command.CommandTimeout = 30*1000;
希望你有解决办法!