使用报表查看器控件查看(SQL服务器报表服务)报表时出现“ASP.NET会话已过期”错误。有时它工作正常,有时我得到这个错误,它在Dev中工作正常,但不在测试环境中。如果您有任何线索,请告诉我。提前致谢。这是报表查看器控件的代码。
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 :(得分:0)
查看iis中的应用程序池,检查高级设置 - >进程模型 - >空闲超时(分钟)。设置高于20分钟。听起来工作进程因为空闲而关闭。通常这种情况发生在测试系统中,因为他们没有获得那么多的命中来阻止空闲超时被踢入。
Cheers Tigger
答案 1 :(得分:0)
我在生产服务器上遇到了几个月的这些症状问题,并且无法在任何开发或测试服务器上可靠地重现它。我很疯狂,直到一些古怪的配置更改最终使ASP.NET会在此会话过期时发出新警告错误。
长话短说,我的问题是报告查看器中的一个错误。它在Connect上被窃听,我在案例中添加了一个可以帮助您的解决方法:
https://connect.microsoft.com/VisualStudio/feedback/details/556989/
在进行任何激烈的解决方法之前,首先检查测试服务器上的事件查看器,并在遇到此错误时查找ASP.NET警告事件。查看事件是否提及'IterationId'参数。
答案 2 :(得分:0)
我通过将报告查看器控件的AsyncRendering设置为false来修复它。只是一个临时的解决方法,直到找到合适的解决方案。