2010-10-11 29 views
1

使用报表查看器控件查看(SQL Server报表服务)报表时,出现“ASP.NET会话已过期”错误。有时它工作正常,有时我得到这个错误,它在Dev中正常工作,但不在测试环境中。请让我知道你是否有任何线索。提前致谢。这里是报表查看器控件的代码。查看报表时ASP.NET会话过期错误

ReportViewer1.ServerReport.ReportServerUrl = new Uri(System.Configuration.ConfigurationManager.AppSettings [“ReportServerUrl”]);

ReportViewer1.ServerReport.ReportPath = System.Configuration.ConfigurationManager.AppSettings["ReportPath"]; 
    ReportViewer1.ServerReport.SetParameters(new List<ReportParameter> { new ReportParameter("key", "value") }); 
    ReportViewer1.DataBind(); 
+0

嗨RKP,我的答案帮助还是你仍然有问题? – WooHoo 2010-10-12 10:27:45

+0

我正在尝试使用“ReportViewer1.LocalReport.Refresh”来解决此问题的建议,如本链接所述http://www.eggheadcafe.com/software/aspnet/31537344/aspnet-session-has-expired--请-help.aspx。我只想增加会话超时作为最后的手段。感谢您的回复。 – RKP 2010-10-12 13:02:21

+0

祝你好运,但我的建议是不增加会话超时。这是空闲超时,即使增加会话超时,闲置超时可能会在未经常访问的系统上启动。无论如何,祝你好运。 – WooHoo 2010-10-12 21:06:41

回答

0

查看iis中的应用程序池,检查高级设置 - >进程模型 - >空闲超时(分钟)。设置此高于20分钟。听起来像工作人员进程正在关闭,因为它闲置。通常,这与测试系统,是因为他们没有得到许多命中从踢停止空闲超时。

干杯跳跳虎

0

我有这些症状的一个问题了好几个月在生产服务器上,是从来没有能够在任何开发或测试服务器上可靠地复制它。我疯了,直到一些奇怪的配置更改终于使ASP.NET日志发生了一个新的警告,每当此会话过期错误发生。

长话短说,我的问题是Report Viewer中的一个错误。它被窃听的Connect和我添加了一个解决方法的情况下它可以帮助你:

https://connect.microsoft.com/VisualStudio/feedback/details/556989/

做任何激烈的解决方法之前,先检查测试服务器上的事件查看器,并寻找一个ASP.NET警告事件在你遇到这个错误的时候。查看该事件是否提及“IterationId”参数。

0

我通过为报表查看器控件设置AsyncRendering为false来修复它。只是一个临时解决方法,直到我找到一个合适的解决方案。