2011-11-14 98 views
11

使用ASP.NET 4.0,我通过实例化Microsoft.ReportingServices.RdlObjectModel.Report,设置Code属性并使用RdlSerializer返回流来创建RDLC流。ASP.NET 4.0报表查看器控件和RDLC报表的安全错误

然后我传递一个流中的ReportViewer像这样:

ReportViewer1.LocalReport.LoadReportDefinition(rdlcStream); 

如果我不设置Code属性,我没有得到任何错误,报告显示正常,但是当我为需要自定义代码的报告设置Code属性,我会看到下面提到的'RequestMinimum' is obsolete错误。

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

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

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

回答

5

我不知道这个错误的确切原因,但根据我的经验,它与一个简单的副本和从一个单元格到结果表格内的其他单元格的表达式相关,所有这些都是在布局和组。

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

这对我有用。

+1

+1从SSRS rdl复制到本地rdlc时,发生同样的错误。我不得不删除所有表达式(保持分组,标签),然后重新创建它们。不确定它不喜欢什么确切的声明,但我已经有了两次,这是我必须做的。 –

0

对我来说,当除去一切顺利,我不知道为什么

0

对于那些另一个选项得到这个错误,并生成报告的标记在此行
<Value>=Globals!PageNumber + ' of ' + Globals!TotalPages</Value>
页码。

可能你们其中一个人<Value>标签开头为"="符号,如果这不是一个表达式,你需要使用EvaluationMode="Constant"