.NET 反射策略异常

Posted

技术标签:

【中文标题】.NET 反射策略异常【英文标题】:.NET Reflection policy exception 【发布时间】:2013-04-24 23:21:44 【问题描述】:

我有一个奇怪的问题:我部署了一个使用反射的 .NET 2.0 应用程序,并且在调用 Assembly.LoadFile 后出现了策略异常。错误如下:

Could not load file or assembly 'xxx, Version=11.5.23.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. PolicyException thrown. (Exception from HRESULT: 0x80131416)    at System.Reflection.Assembly.nLoadFile(String path, Evidence evidence)   at System.Reflection.Assembly.LoadFile(String path)

要加载的程序集位于调用程序集的子文件夹中。该应用程序在其他环境中运行良好,我从未遇到过这种问题。我想这个问题的发生是因为我从网上下载了包含程序集的 zip 和标记为不受信任的二进制文件,我不得不“取消阻止”每个文件。

目标电脑正在运行 W2008 R2。 在同一台电脑上,我正在运行另一个软件,它以相同的方式使用反射并且工作正常。 我试图重新安装应用程序,但我遇到了同样的问题。我找不到为 pc 中的 .NET 程序集设置默认信任级别的方法。

任何想法都将不胜感激。

提前致谢。

【问题讨论】:

【参考方案1】:

当我将相同的组策略添加到同一个文件夹时,我遇到了这个问题。我执行以下步骤来解决此问题:

查看组权限列表:

CD C:\Windows\Microsoft.NET\Framework\v2.0.50727
Caspol -a -listgroups 

查找重复的组权限并通过运行删除重复的组权限:

Caspol -rg Add here the group policy number

【讨论】:

以上是关于.NET 反射策略异常的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中解决跨域策略安全异常

策略模式

Android 灵活切换下拉刷新(策略模式+反射)

Android 灵活切换下拉刷新(策略模式+反射)

JVM-垃圾收集器与内存分配策略

深入理解设计模式-策略模式(结合简单工厂反射Spring详细讲解)