ReportViewer10.0 Windows验证模式下 An error occurred during local report processing.Failed to load expression host assembly
An error occurred during local report processing.Failed to load expression host assembly. Details: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0,Culture=neutral, PublicKeyToken=b77a5c561934e0
解决方法,为ReportViewer的LocalReport设置权限:
var reportInstance = new LocalReport(); reportInstance.SetBasePermissionsForSandboxAppDomain(new PermissionSet(PermissionState.Unrestricted));
I don't really understand why. I do understand that the report is being granted permissions it can't get from WIF, but I don't understand which permissions those are or why it needs them. So, my answer "gives a man a fish," but can someone else "teach a man to fish" by explaining the deeper issue?
LocalReport.SetBasePermissionsForSandboxAppDomain 方法
为Vs2010新添加的方法。使用提供的权限集设置沙盒应用程序域的基本权限。
沙盒应用程序域中的基本权限应用于自定义代码程序集和报表表达式的计算。请注意,此方法将所有现有基本权限集替换为提供的权限集。您应当确保提供的权限集包括 Execution权限。否则,将无法执行任何自定义代码程序集,且无法计算任何表达式。
如果您更改了权限,请确保不能使用 LocalReport 对象访问任何不可信的报表定义。在 .NET Framework 3.5(或启用了 LegacySecurityPolicy 的 .NET Framework 4 中),必须显式调用 ExecuteReportInSandboxAppDomain 方法才能切换到沙盒应用程序域模式。
http://msdn.microsoft.com/zh-cn/library/microsoft.reporting.webforms.localreport.aspx
http://stackoverflow.com/questions/4794968/reporting-services-localreport-and-wif
🐳 作者:dupeng0811 📢 版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 💬 留言:同时 , 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |
|