我们使用SSRS 2005开发了一个报告。它嵌入在Web应用程序中,该应用程序构建在C#/ ASP.Net(3.5 framework / VS 2008)之上。
报告部署在报告/数据库服务器中,这是两层体系结构的一部分,即。 app和db。 此报告执行和生成输出需要一个多小时,因为它调用处理大量数据的存储过程。 运行报告时,经过的时间接近一小时,则会显示错误消息:“Internet Explorer无法显示网页”。
事件查看器日志包含以下消息:
Event Type: Warning Event Source: ASP.NET 2.0.50727.0 Event Category: Web Event Event ID: 1309 Date: 1/7/2013 Time: 10:58:04 AM User: N/A Computer: -------------------- Description: Event code: 3005 Event message: An unhandled exception has occurred. Process ID: 7456 Process name: w3wp.exe Account name: NT AUTHORITY\NETWORK SERVICE Exception type: AspNetSessionExpiredException Exception message: ASP.NET session has expired Request URL:http://------/ABC/Reserved.ReportViewerWebControl.axd?ReportSession=1ki0jo3ouutixi555breaja4&ControlID=9ab46efcbab44cb987c5b9967fea54c3&Culture=1033&UICulture=1033&ReportStack=1&OpType=SessionKeepAlive&TimerMethod=KeepAliveMethodctl00_ContentPlaceHolder1_ReportViewer1TouchSession0
答案 0 :(得分:1)
报告的一小时执行时间永远不可行。当数据量增加时会发生什么?如果2个用户同时请求报告怎么办?如果50个用户同时请求报告怎么办?
我的目标是5秒,即使数据量很大且要求复杂也是可以实现的。
您应该重新访问您的SP代码和/或索引。
答案 1 :(得分:0)
迈克说。但是,如果你喜欢一个非常慢的报告,你可以在Web.Config中设置你的会话超时: http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.80).aspx