Ошибка безопасности с отчетами Report Viewer и отчетами RDLC в ASP.NET 4.0
Используя ASP.NET 4.0, я создаю поток RDLC, создавая экземпляр Microsoft.ReportingServices.RdlObjectModel.Report
, устанавливая свойство Code
и возвращаю поток с помощью RdlSerializer
.
Затем я передаю этот поток в ReportViewer следующим образом:
ReportViewer1.LocalReport.LoadReportDefinition(rdlcStream);
Если я не устанавливаю свойство Code
, я не получаю никаких ошибок и отчет отображается правильно, но когда я устанавливаю свойство Code
для отчета, который нуждается в специальном коде, я получаю ниже 'RequestMinimum' is obsolete
ошибка.
При компиляции выражений произошла непредвиденная ошибка. Родное значение возвращаемого компилятора: "[BC40000]" RequestMinimum "устарел:" Декларативная безопасность уровня сборки устарела и больше не применяется CLR по умолчанию. Подробнее см. http://go.microsoft.com/fwlink/?LinkID=155570.
Эта ошибка не возникает с помощью элемента управления Report Viewer в приложении winforms.
Кто-нибудь видел/разрешал эту проблему?
Ответы
Ответ 1
Я точно не знаю причину этой ошибки, но, по моему опыту, она была связана с простой копией и прошлым от выражения из одной ячейки в другую ячейку внутри таблицы результатов, все это после внесения изменений в макет и группы.
Я рекомендую вам удалить любое выражение или формулу, убедиться, что ваш отчет выполнен без сообщения об ошибке, и переписать все выражения и формулы один на один, проверяя каждую формулу, что отчет открыт правильно.
Это сработало для меня.
Ответ 2
Для меня это был номер страницы в этой строке
<Value>=Globals!PageNumber + ' of ' + Globals!TotalPages</Value>
Когда удалено все идет правильно, и я не знаю, почему
Ответ 3
Другой вариант для тех, кто получил эту ошибку, и создать разметку отчета.
Вероятно, один из тэгов <Value>
начинается с знака "="
, и если это не выражение, вам нужно использовать EvaluationMode="Constant"
.