ASP.NET 4.0中的报表查看器控件和RDLC报表的安全性错误

时间:2011-11-14 21:01:39

标签: reportviewer rdlc dynamic-rdlc-generation

使用ASP.NET 4.0,我通过实例化Microsoft.ReportingServices.RdlObjectModel.Report,设置Code属性并使用RdlSerializer返回流来创建RDLC流。

然后我将该流传递给ReportViewer,如下所示:

ReportViewer1.LocalReport.LoadReportDefinition(rdlcStream);

如果我没有设置Code属性,我没有收到任何错误并且报告显示正确,但是当我为需要自定义代码的报告设置Code属性时,我得到以下提到的'RequestMinimum' is obsolete错误。

  

编译表达式时发生意外错误。本机编译器返回值:'[BC40000]'RequestMinimum'已过时:'程序集级声明式安全性已过时,默认情况下不再由CLR强制执行。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=155570。'。'。

使用winforms应用程序中的Report Viewer控件不会发生此错误。

有没有人见过/解决过这个问题?

3 个答案:

答案 0 :(得分:5)

我不确切知道这个错误的原因,但根据我的经验,它与一个简单的副本相关,并从结果表中的一个单元格到另一个单元格的表达式过去,所有这些都在布局中进行了更改后和团体。

我建议您删除任何表达式或公式,验证您的报表是否在没有任何错误消息的情况下执行,并一对一地重写所有表达式和公式,检查报表正确打开的每个公式。

这对我有用。

答案 1 :(得分:0)

对我而言,这是该行的页码
    <Value>=Globals!PageNumber + ' of ' + Globals!TotalPages</Value>
当删除一切正常,我不知道为什么

答案 2 :(得分:0)

获得此错误并生成报告标记的其他选项。

您可能有<Value>个标记以"="符号开头,如果这不是表达式,则需要使用EvaluationMode="Constant"