gpt4 book ai didi

.net - ReportViewer 2010无法评估表达式

转载 作者:行者123 更新时间:2023-12-04 13:43:40 24 4
gpt4 key购买 nike

我的项目是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/en-US/vsreportcontrols/thread/be1a6149-a120-4e66-96f8-63f5c4d43c87

http://blogs.msdn.com/b/brianhartman/archive/2010/02/18/expression-evaluation-in-local-mode.aspx

关于.net - ReportViewer 2010无法评估表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com