ASP.NET ReportViewer очень медленно в локальном режиме

Я использую .Net 4.5 и ReportViewer 11 в локальном режиме. Мои отчеты отображаются очень медленно (10 мин). Я нашел в this post, что добавление <trust legacyCasModel="true" level="Full"/> в web.config решит проблему, и оно помогло. Время рендеринга отчета увеличилось с 10 минут до 10 секунд, но теперь мои динамические переменные в других частях системы не работают. Это ошибка:

Динамические операции могут выполняться только в однородном домене приложений.

Есть ли способ установить <trust legacyCasModel="true" level="Full"/> или что-то с таким же эффектом только на одной странице?


person nima    schedule 11.09.2013    source источник


Ответы (4)


Изменение платформы .net на 3.5 поможет вам загружать отчеты за половину времени. Вы можете попробовать в вашем случае.

person V.J.    schedule 22.11.2013
comment
Да, я знаю, но тогда вы теряете преимущества .net 4.5 - person nima; 22.11.2013

Последнюю в этом выпуске можно найти здесь 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, возможно, стоит провести быстрый тест.

person Mike Beeler    schedule 27.11.2013
comment
Я использую sql 2012. Я пробовал создать отдельный веб-сайт 3.5 для просмотра отчетов, но дополнительная работа по поддержке двух сайтов и всего дублированного кода того не стоила. - person nima; 27.11.2013

Пожалуйста, используйте следующую ссылку для получения дополнительной информации

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

Добавить:

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

в разделе: configuration / system.web Webconfig. Это помогает повысить производительность отчета в 10 раз. Но влияет на динамические объекты в проектах MVC.

person Ricky007    schedule 10.08.2017

Может оказаться невозможным установить уровень доверия только для одной страницы, однако вы можете разделить страницу с ReportViewer элементом управления на новое веб-приложение и, следовательно, новый домен приложения. Таким образом, изменения web.config влияют только на страницу средства просмотра отчетов.

У этого обходного пути есть и другие преимущества, например:

  • возможность масштабировать веб-сайт отчетности по-разному, поскольку он обычно потребляет много ресурсов
  • возможность отключить состояние сеанса для основного веб-сайта по соображениям производительности и оставить его включенным только в отчетах, поскольку ReportViewer требует состояния сеанса
person Jozef Benikovský    schedule 22.09.2015