获取ASP.NET会话的SSRS问题已过期

时间:2011-03-08 06:57:04

标签: .net asp.net reportingservices-2005 reporting-services

在报表查看器中查看报表时,我们会收到以下错误: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放在同一台服务器上时,我收到了错误?!!!

3 个答案:

答案 0 :(得分:1)

如果报告的路径包含下划线,您可能还会遇到此问题。我没有确定除了删除它们之外的修复,但这确实有效(至少对我们而言)。

EG:http://reportserverhost/Reports_Dev/SomeReport必须成为http://reportserverhost/Reports Dev/SomeReport才能工作。

对我没有任何意义,但那是我们的修复。

答案 1 :(得分:1)

我遇到了同样的问题。报表查看器会随机选择何时显示报表,而其他时候我只会遇到此错误:“ ASP.NET会话已过期或找不到”。

尝试了所有可能的解决方案后,我终于发现问题出在应用程序池“高级设置”下的“流程模型”中。

最大工作进程设置为 2 ,将数字更改为 1 后,我不再遇到错误“ ASP。 NET会话已过期或找不到。”

希望我能帮助另一个人节省一些时间。

这是您需要更改设置的屏幕截图。

enter image description here

答案 2 :(得分:0)

您可以尝试三件事,前两件来自here

1)将默认的InProc会话状态模式更改为StateServer模式,如下所示:

<sessionState mode="StateServer" stateConnectionString="tcpip=localhost:42424" cookieless="false" timeout="20"/>

2)您可能在报告中有图像。当您将报告投放到生产环境中时,您可能也想要获取报告中嵌入的图像。

3)你的IIS可能正试图启动更多进程或其他任何东西 - 无论如何,将你的maxworkingprocesses设置为1,这样它就不会尝试启动新的进程。