开发环境:VS2008

报表:微软的rdlc

代码时,运行正常。制作安装包后,显示报表出错,出错类型为

 An error occurred during local report processing.Failed to load expression host assembly.Details:Requestfor the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

解决办法:在报表预览窗体,增加代码

            reportViewer1.LocalReport.ExecuteReportInCurrentAppDomain(Assembly.GetExecutingAssembly().Evidence);
            reportViewer1.LocalReport.AddTrustedCodeModuleInCurrentAppDomain("System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

 编译后,重新打包,运行正常。

网上说,如果开发环境为VS2010

那么需要增加代码:

var reportInstance = new LocalReport();
reportInstance.SetBasePermissionsForSandboxAppDomain(new PermissionSet(PermissionState.Unrestricted));

var permissionSet =newPermissionSet(PermissionState.None);
var flags =SecurityPermissionFlag.Execution|SecurityPermissionFlag.ControlPrincipal;
var permission =newSecurityPermission(flags); permissionSet.AddPermission(permission);
ReportViewer.LocalReport.SetBasePermissionsForSandboxAppDomain(permissionSet);

具体是否能行,没有试验。

相关文章:

  • 2021-10-06
  • 2021-11-03
  • 2021-05-31
  • 2021-10-27
  • 2021-09-30
  • 2021-10-08
  • 2021-08-04
猜你喜欢
  • 2021-12-04
  • 2021-11-15
  • 2021-04-15
  • 2021-11-13
  • 2021-07-05
相关资源
相似解决方案