Monday, December 22, 2008

SSRS ReportViewer "ASP.NET session has expired"

When working with SSRS, after a idle person, if the user tries to run the report, or set parameter values, you might receive the message "ASP.NET session has expired"

There are a ton of posts out there, but very few solutions. What's worse, a few of the proposed solutions do not seem to work.

"ASP.NET session has expired."
1. ReportViewer AsyncRendering -- Quick fix?

First, you might want to configure your ReportViewer AsyncRendering rendering property to be set by a configuration file setting. It seems that setting AsyncRendering to false fixes the problem, but that might not be the greatest solution, but if you need to fix the problem immediately, you might try it. Additionally, if your trying to troubleshoot problems in your production enviroment, eliminating AsyncRendering for the ReportViewer is always a help.

More than one post seems to indicate that the AsyncRendering needs to be set to true if your web server name contains "_". No idea how true this is, but if you set AsyncRendering to false, and your images are missing, this might be your problem.

2. ReportViewer AutoRefresh

Since the ASP.NET session is expiring, you might try to set your reports to auto-refresh. In SSRS 2008, add the AutoRefresh element to your report.
Example:
<!--Autorefresh report Note:In Seconds-->
<AutoRefresh>120</AutoRefresh>

Disclaimer: This is a work in progress. Both these solutions seem to work, but I am still looking for something better. If you find something, please add a comment and/or link. Thanks!

References:
Reports Render : ASP.NET session has expired
'ASP.NET session has expired' error in the ReportViewer control
Automatically refreshing your SQL Reporting Services reports with the AutoRefresh element

1 comment:

Unknown said...

Could you please let me know i am not able to fix the error asp.net session expired for report viewer controls. I am using VS2008 and deploying the report on WebFarm. Any help is apprecitaed.