我正在开发一些使用System.EnterpriseServices并在.NET Framework 2.0中编译的旧.NET程序集。我在某些情况下收到 “主要权限请求失败” 例外,但在其他情况下却没有。例如,
时代码可以正常工作但是当我从Windows窗体应用程序.net 4.5.1运行它时会引发异常。在这种情况下,我得到提到的异常和FirstPermissionThatFailed
<IPermission class="System.Security.Permissions.PrincipalPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1"><Identity Authenticated="true" Role="1,50000,50750,50751:Execute"/>
</IPermission>
我对旧版API进行了逆向工程,发现这些函数具有以下属性
[PrincipalPermission(SecurityAction.Demand,Role="1,50000,50750,50751:Execute")]
我知道问题可能是由Code Access Security的重大变化引起的,但我不知道到底是什么,所以我有两个问题:
谢谢!
答案 0 :(得分:0)
将此添加到App.config解决了问题:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true" />
</configuration>
我猜Resharper Xunit跑步者在加载并执行程序集时正在使用它,这就是它在测试中起作用的原因。