我们当前的MVC 4应用程序(Windows 7)使用IFRAME显示MS报告查看器控件(版本10.0.0.0)。我正在使用SSRS Web服务从根文件夹中检索文件夹和报告的列表。使用我们的自定义UI查询和显示每个报告的参数。参数将传递回reportviewer以呈现报告。在本地运行Web和SSRS服务器(使用IE 11.096和Chrome 33.0.1750.154)时,一切都很完美,但是在部署到我们的测试Web和ssrs服务器之后,报表查看器似乎开始呈现(显示加载gif)但是然后显示消息“ASP .NET会话已过期或无法找到。”
有关此问题的数十篇论坛帖子。到目前为止,我已经尝试并验证了以下内容,但没有取得任何成功:
- 应用程序正在使用SessionMode = SQLServer,cookieless = false
- 在web.config中增加超时= 3000
- 设置ReportViewer AsyncRendering = false
- 设置ReportViewer KeepSessionAlive = true
- 检查报告查看器aspx.cs
的Page_load中的回发
-
检查IIS日志是否有错误
-
在Reporting Server事件日志中发现错误:
- **报表服务器(MSSQLSERVER)无法加载SQLPDW扩展
- **报表服务器(MSSQLSERVER)无法加载TERADATA扩展名。
-
**这些错误似乎对会话问题没有任何影响
-
修改报表服务器(ReportServer)上的web.config
SessionState的=在
- 修改了报表服务器(ReportManager)上的web.config
SessionMode = InProc使用SessionMode = SQLServer
- 检查了ReportingServer日志(注意到所有成功的Web服务
呼叫)
-
在应用程序池中验证了一个工作进程
-
查看框架源时,会显示一条消息“Report Viewer Web
控制HTTP处理程序尚未在应用程序中注册...“
但是存在以下处理程序条目:
- add path =“Reserved.ReportViewerWebControl.axd”verb =“*”
类型=“Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms,Version = 10.0.0.0,Culture = neutral,
PublicKeyToken = b03f5f7f11d50a3a“validate =”false“/>
- add name =“ReportViewerWebControlHandler”
preCondition =“integratedMode”verb =“*”
路径= “Reserved.ReportViewerWebControl.axd”
类型=“Microsoft.Reporting.WebForms.HttpHandler,
Microsoft.ReportViewer.WebForms,Version = 10.0.0.0,Culture = neutral,
公钥= b03f5f7f11d50a3a“
-
**此消息也会在本地显示(不确定是否有问题)
-
重新启动IIS / ReportServer
- 使用报表管理器在报表服务器上执行报表
- 报告在报告管理器中外部执行正常
-
报告在本地运行的MVC应用程序中执行正常
-
当我为reportViewer创建事件处理程序时
(OnReportError =“HandleError”)此处理程序中的代码未获得
执行后,观众(使用Chrome)显示空白页面(没有
显示错误)使用IE发生了相同的结果(没有错误
显示)但工具栏图像也未对齐/禁用。
我已经尝试了大多数(如果不是所有)我发现的建议。在任一浏览器中,一切都在本地完美运行发布错误的时间是发布到服务器。感谢您的任何见解。