我有一个ASP.NET应用程序暴露了一个Microsoft ReportViewer(实际上是一个MVC3应用程序与一个WebForm托管ReportViewer).运行大型报告时,会发生超时,导致请求停止,并显示一个空白页来代替报告.然而,以下程序设置了以下超时参数:
Viewer.ServerReport.Timeout = Configuration.ReportViewerTimeout; ScriptManager.AsyncPostBackTimeout = Configuration.ReportViewerAjaxTimeout;
相应的值为-1和0,根据文档解释为无超时.我也尝试过大价值,没有任何区别.
大约一分钟左右等待报告加载(“加载”消息框),我得到一个空白的报告,我看到这在我的Firebug控制台窗口中:
Aborted
Sys.WebForms.PageRequestManagerTimeoutException: The server request timed out.
[Break On This Error] this._endPostBack(this._cr…anagerTimeoutError(),sender,null);
我也试过添加到我的web.config:
<httpRuntime maxRequestLength="1024000" executionTimeout="999999" />
而在IIS>我的网站>高级设置>连接限制我将“连接超时(秒)”设置为1200.所有这些都没有区别.
有人知道我可能会失踪吗?
解决方法
原来答案是:实际上没有什么遗漏!
发生这种情况时,ScriptManager的超时值不会保留在ViewState中(与ReportViewer的超时值不同),代码只在if(!PostBack)块中设置一次.通过在每个请求(甚至回发)中设置ScriptManager的AsyncPostBackTimeout属性来修复.另一种方法是使用Visual Studio WebForm设计器将其设置为固定值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。