2015-11-13 38 views
1

我正在开发一些使用System.EnterpriseServices并在.NET Framework 2.0中编译的传统.NET程序集。我收到“请求主体权限失败”在某些情况下有例外,但在其他情况下不例外。例如,代码工作确定,当传统程序集抛出“请求主体权限失败”

  • 我从xUnit的亚军测试in.net 4.5.1
  • 我RUNT它作为内部IIS web服务也.NET 4.5.1
  • 我都跑它它从Windows窗体应用程序生成的.net 2.0

但它从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")] 我知道这个问题可能是由这都是为代码访问安全性的重大变化引起的,但我不知道究竟是什么,所以我有2个问题:

  1. 有实际作用做这个角色ID的地图1,50000,50750,50751
  2. 为什么这些代码并没有引发异常时,它是从一个叫ReSharper的的xUnit测试赛跑者?就像它在不同的安全环境中运行一样?

谢谢!

回答

0

添加这App.config中解决了这个问题:

<configuration> <startup useLegacyV2RuntimeActivationPolicy="true" /> </configuration>

我想,当它加载和执行组件,它就是为什么它从测试中表现ReSharper的xUnit的亚军在使用它。

相关问题