将.net 3.5传递给4.0时的安全异常

问题描述:

将Asp.Net Web Application .Net 3.5迁移到.Net 4.0时,存在一些问题。将.net 3.5传递给4.0时的安全异常

看来,我们有一个Caspol安全例外,所以我们将此添加到我们的web.config:

<runtime> 
    <NetFx40_LegacySecurityPolicy enabled="true"/> 
</runtime> 

,并没有什么改变。似乎我们无法在AspNet 4.0中执行“Microsoft.Web.Management.Iis”程序集。 我们在.Net 4.0中执行了caspol.exe实用程序来授予完全信任权限,但没有成功。

当我们在应用程序池上使用本地管理员帐户时,一切正常。 但是,当我们使用的域管理员联系用户帐户,我们得到了下面这个错误:

[PolicyException: Required permissions cannot be acquired.] 
     System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +6502926 
     System.Security.SecurityManager.ResolveCasPolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +99 

    [FileLoadException: Could not load file or assembly 'Microsoft.Web.Management.Iis, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] 

我们在win2k8 R2环境ASPNET 2.0上运行,并在IIS 7.5上运行4.0。

你有什么建议可以解决我们的问题。

谢谢

我们给微软打了一个电话支持来解决问题。

问题是因为我们的网站文件托管在SAN上。此问题的框架4.0上有一个修补程序。

此修补程序目前尚未公开,但名称为NDP40-KB2580188-x64.exe