在报表查看器中查看报表时,我们会收到以下错误:ASP.NET会话已过期
我们使用.NET 2005 ssrs 2005
我们在SSRS服务器上开发和托管的报告与ASPX应用程序的应用程序服务器相同
在我们的网络应用程序中,default.aspx有一个显示报告的报告查看器
部署在测试服务器上,其中应用程序的链接为http://testserver/appname 和报告服务器链接是http://testserver/reportserver
每件事都运转良好
生产服务器中的
我们为应用程序提供了不同的网站名称http://applicationname 在生产中每个应用程序都是不同的站点
所以这里我们有http://applicationname的web应用程序 和http://servername/reportserver报告
此处报告查看器未显示报告但出现以下错误
ASP.NET会话已过期
AspNetSessionExpiredException:ASP.NET会话已过期] Microsoft.Reporting.WebForms.ReportDataOperation..ctor()+866 Microsoft.Reporting.WebForms.HttpHandler.GetHandler()+ 719 Microsoft.Reporting.WebForms.HttpHandler.ProcessRequest(HttpContext context)+15 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+638 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+177
我可以得到一些帮助吗
更新 在生产中测试了它http://productionserver/applicationname 它运行正常(当我将应用程序作为默认站点下的虚拟目录时) 但是当我把应用程序作为saperate site http://applicationname放在同一台服务器上时,我收到了错误?!!!
答案 0 :(得分:1)
如果报告的路径包含下划线,您可能还会遇到此问题。我没有确定除了删除它们之外的修复,但这确实有效(至少对我们而言)。
EG:http://reportserverhost/Reports_Dev/SomeReport
必须成为http://reportserverhost/Reports Dev/SomeReport
才能工作。
对我没有任何意义,但那是我们的修复。
答案 1 :(得分:1)
我遇到了同样的问题。报表查看器会随机选择何时显示报表,而其他时候我只会遇到此错误:“ ASP.NET会话已过期或找不到”。
尝试了所有可能的解决方案后,我终于发现问题出在应用程序池“高级设置”下的“流程模型”中。
最大工作进程设置为 2 ,将数字更改为 1 后,我不再遇到错误“ ASP。 NET会话已过期或找不到。”
希望我能帮助另一个人节省一些时间。
这是您需要更改设置的屏幕截图。
答案 2 :(得分:0)
您可以尝试三件事,前两件来自here。
1)将默认的InProc会话状态模式更改为StateServer模式,如下所示:
<sessionState mode="StateServer"
stateConnectionString="tcpip=localhost:42424"
cookieless="false"
timeout="20"/>
或
2)您可能在报告中有图像。当您将报告投放到生产环境中时,您可能也想要获取报告中嵌入的图像。
或
3)你的IIS可能正试图启动更多进程或其他任何东西 - 无论如何,将你的maxworkingprocesses设置为1,这样它就不会尝试启动新的进程。