我的问题是我的报告中的许多表达都没有评估.例如,我在报告的页脚中有一个文本框,其简单表达式为= Globals!PageNumber – 但是当报表运行时,我只是在该字段中获得#Error.我得到一个类似的#Error,只是在我的一个字段上做一个ToString – = Fields!MyBooleanField.Value.ToString().
同样在我的页脚中,= 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
<system.web> <trust legacyCasModel="true" level="Full"/> </system.web>
这会阻止您使用动态变量(在某些或所有情况下?).特别是,由于ViewBag是动态的,因此无法使用Asp.Net MVC 3.
更多信息
http://blogs.msdn.com/b/brianhartman/archive/2010/02/18/expression-evaluation-in-local-mode.aspx
原文地址:https://www.jb51.cc/aspnet/245951.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。