IIS7无法授予最低权限请求

我在使用FileHelpers.dll时出现这个错误,但是我的IIS设置为完全信任级别,所以不应该这样

这是完整的堆栈跟踪:

[PolicyException: Required permissions cannot be acquired.] System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Boolean checkExecutionPermission) +10238142 System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet denyPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +97 [FileLoadException: Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +416 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +166 System.Reflection.Assembly.Load(String assemblyString) +35 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +190 [ConfigurationErrorsException: Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +11207304 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +388 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +232 System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +48 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +210 System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +76 System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +283 System.Web.Compilation.BuildManager.CompileGlobalAsax() +50 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +676 [HttpException (0x80004005): Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +76 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +1012 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +1025 [HttpException (0x80004005): Could not load file or assembly 'FileHelpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=3e0c08d59cc3d657' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11301302 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +88 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4338644 

我有一个类似的问题,当我用一个干净的Windows 7安装重build我的开发机器。 在四处寻找之后,我发现了一个适合我的解决scheme。

在您的IIS应用程序池高级设置中,在“过程模型”下,将“加载用户configuration文件”设置为true。

还有一些其他的东西需要检查,如你的信任级别,但是没有一个适用于我(这是我的开发机器上已经完全信任)。 设置应用程序池加载用户configuration文件修复它。

在另一个例子中,我看到了这个错误,例如,IIS通过UNCpath(即\\svr\share\folder )运行应用程序或虚拟path。 即使Load User Profile=true我仍然有PolicyException错误。 这是通过运行代码访问安全策略工具(Caspol.exe)来完全信任UNCpath来解决的。 由于我们同时拥有64 bit32 bit.Net 2.x.Net 4.x ,我在如下四个环境中运行它:

 %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on %SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on %SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -pp off -m -ag 1 -url "file:////\\svr\share\folder\*" FullTrust -exclusive on 

一些注意事项:

  • 对于.Net 4.x确保将NetFx40_LegacySecurityPolicy设置为true否则caspol.exe命令将无法正常工作。
  • 对于给定的环境,不要使用caspol.exe添加重复的条目。 运行下面的命令来查看您的条目:

    %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\caspol.exe -a -lg %SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\caspol.exe -a -lg %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\caspol.exe -a -lg %SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -a -lg

我们有一个与Windows 2008 R2类似的问题,我们的应用程序可以在64位模式下正常工作,但切换到32位模式将停止运行并抛出权限错误,事实certificate,在IIS7下的高级设置>>过程模型>>默认情况下,“身份”设置已切换为“应用程序池标识”,可能需要更改为“networking服务”以32位模式工作。

我们做到了,现在我们顺利地哼着歌。 想象这个信息的珍闻可能是所有人都指向文件夹权限的原因,因为从技术上讲这是一个文件夹权限问题。 但是,更改是在IIS中,而不是文件夹本身的安全设置。

看来,这是一个通用的大会不会加载错误的东西。 我赞赏所有其他职位,因为他们成为错误的可能来源列表。

我发现了一个。 我已经尝试了所有以上都没有成功。 我终于意识到我正在用Visual Studio Express 2008发布Web应用程序,并使用“debugging”的构buildconfiguration。 将构buildconfiguration更改为“发布”后,Web应用程序开始工作。

具体:Visual Studio Express 2008将文件移动到Win 2008 R2服务器上的IIS7.5。

我有类似的问题,我解决了以下步骤的问题:

  1. 转到IIS。
  2. 右键点击网站文件夹,看到它的应用程序池。
  3. 右键单击应用程序池并转到高级设置。
  4. 在过程模型部分设置load user profiletrue

她的问题属于使用ddl不信任的SharePoint来解决问题:

  1. 打开IIS
  2. 点击.net真正的水平
  3. select完整(内部)

在您的IIS 6.0应用程序池高级设置中,在“过程模型”下,将“加载用户configuration文件”设置为true。

还有一些其他的东西需要检查,如你的信任级别,但是没有一个适用于我(这是我的开发机器上已经完全信任)。 设置应用程序池加载用户configuration文件修复它。

这有助于解决

需要的权限不能在iis中获得解决..