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和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    C#冒泡排序--详解
    盘古搜索--实例解析
    ajax提交表单序列化(serialize())数据
    随机数大揭秘
    静态代码块(主要是注意执行顺序)
    单例模式
    递归
    vue路由嵌套(邹文丰)
    vue computed和 methods、 watch 区别(邹文丰)
    vuex状态管理mutations,getters,actions总结(邹文丰)
  • 原文地址:https://www.cnblogs.com/cglNet/p/2828190.html
Copyright © 2011-2022 走看看