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和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    android 使用Activity做窗口弹出(模拟Dialog)
    解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
    基于iview使用jsx扩展成可编辑的表格
    vue token 过期处理
    组件通信 eventtBus
    组件通信 $ref
    组件通信 Provide&&inject
    Vue 生命周期
    layui token 过期 重新登陆
    Python(3) 进制转换
  • 原文地址:https://www.cnblogs.com/cglNet/p/2828190.html
Copyright © 2011-2022 走看看