zoukankan      html  css  js  c++  java
  • 解决rdlc报表打包后,显示安全错误的方法

    开发环境: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);

    具体是否能行,没有试验。
    作者: cglnet
    本文版权归cglNet和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Dependency Injection in ASP.NET Web API 2
    js, lambada? 在chrome和node下可以使用
    jquery text
    bugs view:
    支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
    阿里云 ecs云主机 静默安装oracle11g
    mysql1033错误 InnoDB临时表空间报错
    8888. Distance Between 2 Nodes in BST
    783. Minimum Distance Between BST Nodes
    530. Minimum Absolute Difference in BST
  • 原文地址:https://www.cnblogs.com/cglNet/p/2828190.html
Copyright © 2011-2022 走看看