Ошибка безопасности с отчетами 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".