我正在UpdatePanel
发出一个超过90秒的请求。我收到此超时错误:
Microsoft JScript运行时错误: Sys.WebForms.PageRequestManagerTimeoutException:服务器请求 超时了。
有人知道是否有办法增加通话超时前的时间?
答案 0 :(得分:87)
ScriptManager上有一个属性:
AsyncPostBackTimeout="300"
答案 1 :(得分:42)
在我的例子中,ScriptManager对象是在Master Page文件中创建的,然后与内容页面文件共享。因此,要更改内容页面中的ScriptManager.AsyncPostBackTimeout属性,我必须访问内容页面的aspx.cs文件中的对象:
protected void Page_Load(object sender, EventArgs e)
{
. . .
ScriptManager _scriptMan = ScriptManager.GetCurrent(this);
_scriptMan.AsyncPostBackTimeout = 36000;
}
答案 2 :(得分:11)
这样做了(基本上只是忽略所有超时):
<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>
答案 3 :(得分:7)
请按照以下步骤操作:
第1步:在 web.config 中,设置httpRuntime maxRequestLength="1024000" executionTimeout="999999"
步骤2:将以下设置添加到网页的ScriptManager:AsyncPostBackTimeout ="360000"
这将解决您的问题。
答案 4 :(得分:2)
这可以通过更改IIS中的ASP脚本超时来配置。
它位于您的网站,虚拟目录,配置按钮的属性中,然后位于选项选项卡上。
或通过设置Server.ScriptTimeout属性来设置它。
答案 5 :(得分:1)
嗯,我想如果你只是希望丢弃的请求有可能它从未完全执行过那就行了......
将AsyncPostBackTimeOut属性添加到ScriptManager标记,以将默认超时从90秒更改为更适合您应用程序的内容。
此外,请考虑更改接收呼叫的Web服务以加快移动速度。互联网时间90秒也可能是无限的。
答案 6 :(得分:0)
您遇到的问题是您的应用程序在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;
希望你有一个解决方案!