我们在ASP.NET页面上有VS2005版本的ReportViewer控件。这些报表将针对SQL2008 Reporting services执行,并正确显示。我们对列进行交互式排序,它的工作方式是expected...usually。
对于较大的结果集(超过100页),排序将停止,在查看器中显示白色背景,并显示“操作已超时”字样。具有讽刺意味的是,它在大约3秒内就完成了这项工作。当我看到默认情况下ServerReport.Timeout为2000ms时,我以为我已经知道了,但是将其更改为30000 ms并没有什么不同。看起来它甚至没有意愿去尝试对那么多数据进行排序:)下面是代码:
var rvMain = new ReportViewer {
EnableViewState = true,
ProcessingMode = ProcessingMode.Remote,
ShowRefreshButton = false,
AsyncRendering = true,
ShowCredentialPrompts = false,
ShowDocumentMapButton = true,
DocumentMapCollapsed = true,
};
rvMain.ServerReport.DisplayName = displayName;
rvMain.ServerReport.ReportPath = reportPath;
rvMain.ServerReport.Timeout = 30000;我看过很多其他关于超时的帖子。但是,这仅在排序时发生,然后仅在大型结果集上发生。如有任何建议,我们将不胜感激!
更新:对直接在SQL报表管理器网站中运行的报表进行排序时,排序不会超时。
发布于 2009-11-24 04:26:30
看起来我们是自找麻烦了。我们实现了IReportServerConnection21,因为我们没有使用会话状态,并且希望控制用于连接到报告服务的凭据。在接口实现中,我们有一个不寻常的默认值2000毫秒。因此,在交互式排序的往返过程中,它使用的是默认值,而不是最初创建ReportViewer时设置的值。显然,在IReportServerConnection2的实现中提高Timeout的值可以解决这个问题。
https://stackoverflow.com/questions/1784644
复制相似问题