asp.net – ReportViewer超时,尽管超时设置

我有一个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设计器将其设置为固定值.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....