ASP.NET ReportViewer在本地模式下非常慢

时间:2013-09-11 09:42:25

标签: asp.net performance reportviewer localreport

我在本地模式下使用.Net 4.5和ReportViewer 11。我的报告非常缓慢(10分钟)。我在this post中发现将<trust legacyCasModel="true" level="Full"/>添加到web.config将解决问题,而且确实如此。报告渲染时间从10分钟到10秒,但现在我的系统其他部分的动态变量不起作用。这是错误:

  

动态操作只能在同质AppDomain中执行。

有没有办法在一页中设置<trust legacyCasModel="true" level="Full"/>或具有相同效果的内容?

4 个答案:

答案 0 :(得分:1)

将.net框架更改为3.5将有助于您在半个时间内加载报告。您可以尝试一下。

答案 1 :(得分:1)

这个问题的最新内容可以在这里https://connect.microsoft.com/VisualStudio/feedback/details/561679/reporting-services-using-parameter-for-dynamic-grouping-very-slow找到,看起来它可以在sql server 2012中解决。

如果您没有使用4.5特定功能,则回滚到3.5是最可行的选项。由于cas设置是web.config的一部分,因此该选项不适用于每页

考虑为您的报告页面构建一个单页子站点,其中子站点是一个具有3.5应用程序池的独立应用程序,可能值得快速测试

答案 2 :(得分:0)

可能无法仅为一个页面设置信任级别,但是您可以将具有ReportViewer控件的页面分隔为新的Web应用程序,从而将新的应用程序域分开。这样,web.config更改只会影响报表查看器页面。

此解决方法还有一些其他好处,如:

  • 以不同方式扩展报告网站的能力,因为它通常消耗大量资源
  • 出于性能原因关闭主网站会话状态的能力,并且仅在报告中打开它,因为ReportViewer需要会话状态

答案 3 :(得分:0)

请使用以下链接获取更多信息

<强> https://codeontime.com/blog/2014/08/improving-performance-of-reports-in

添加:

<trust legacyCasModel="true" level="Full"/> 

部分:Webconfig的configuration / system.web。 它有助于将报告性能提高10倍。但是在MVC项目中影响动态对象。