【问题标题】:ASP.NET ReportViewer very slow in local modeASP.NET ReportViewer 在本地模式下非常慢
【发布时间】:2013-09-15 06:36:14
【问题描述】:

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

动态操作只能在同构的 AppDomain 中进行。

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

【问题讨论】:

    标签: asp.net performance reportviewer localreport


    【解决方案1】:

    请使用以下链接了解更多信息

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

    添加:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        这个问题的最新消息可以在这里找到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 应用程序池的单独应用程序,可能值得快速测试

        【讨论】:

        • 我使用的是 sql 2012。我尝试创建一个单独的 3.5 网站来查看报告,但是维护两个网站和所有重复代码的额外工作是不值得的。
        【解决方案4】:

        将 .net 框架更改为 3.5 将帮助您在一半时间内加载报告。你可以试试看你的情况。

        【讨论】:

        • 是的,我知道,但是你正在失去 .net 4.5 的好处
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        • 2013-10-22
        • 1970-01-01
        相关资源
        最近更新 更多