ReportViewer 2010无法评估表达式

| 我的项目是4.0框架上的ASP.Net WebForms,使用ReportViewer 10,使用本地处理模式呈现本地RDLC报表。 我的问题是报告中的许多表达式都没有评估。例如,我在报表的页脚中有一个文本框,其简单表达式为
=Globals!PageNumber
-但是当报表运行时,我在该字段中仅获得#Error。我在我的一个字段-
=Fields!MyBooleanField.Value.ToString()
上执行ToString时遇到类似的#Error。 同样在我的页脚中,
=DateTime.Now
起作用,而
=Globals!ExecutionTime
不起作用。 这对我来说毫无意义-好像我缺少参考资料或其他内容一样。我的项目中同时引用了Microsoft.ReportViewer.Common(v10)和Microsoft.ReportViewer.WebForms(v10)。 任何人都对我所缺少的东西或如何解决此问题有任何建议?     
已邀请:
        我看到了三个选择: 选项1:提升沙盒权限 表达式被编译成单独的程序集,并以较少的权限在沙箱中运行。使用此选项可增加赋予沙箱的权限。您可能可以授予一个较小的权限集,我们只是没有花时间来解决这个问题。这将意味着该报告及其引用的任何程序集将具有提升的权限。尽管我们尚未将其部署到生产环境中,但该解决方案仍对我们有效(MVC 3,.Net 4,VS2010,Microsoft.Reporting v10)。
localReport.SetBasePermissionsForSandboxAppDomain(
    AppDomain.CurrentDomain.PermissionSet.Copy());
选项2:建立在.Net 3.5框架上 在.Net 3.5下编译您的项目 选项3:legacyCasModel 将此添加到您的web.config:
<system.web>
  <trust legacyCasModel=\"true\" level=\"Full\"/>
</system.web>
这样可以防止您使用动态变量(在某些情况下还是所有情况下?)。特别是,由于ViewBag是动态的,因此不能使用Asp.Net MVC 3。 更多信息 http://social.msdn.microsoft.com/Forums/zh-CN/vsreportcontrols/thread/be1a6149-a120-4e66-96f8-63f5c4d43c87 http://blogs.msdn.com/b/brianhartman/archive/2010/02/18/expression-evaluation-in-local-mode.aspx     
        该问题是由于Framework 4.0中的一些CAS策略更改引起的。 请在web.config中添加以下行:
<trust legacyCasModel=\"true\" level=\"Full\"/>
在“ 7”部分 请参考下面的链接: http://blogs.msdn.com/b/brianhartman/archive/2010/02/18/expression-evaluation-in-local-mode.aspx     

要回复问题请先登录注册