当我使用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
答案 0 :(得分:83)
当我使用干净的Windows 7安装重建我的开发机器时遇到了类似的问题。在四处寻找之后,我发现了一个对我有用的解决方案。
在IIS应用程序池高级设置中,在“Process Model”下,将Load User Profile设置为true。
还有其他一些要检查的东西,比如你的信任级别,但没有一个适用于我(它已经完全信任我的开发机器)。设置应用程序池以加载用户配置文件修复它。
答案 1 :(得分:21)
我在另一个实例中看到过这个错误,例如,IIS正在通过UNC路径运行应用程序或虚拟路径(即\\svr\share\folder
)。即使Load User Profile=true
我仍然遇到PolicyException错误。它通过运行Code Access Security Policy Tool (Caspol.exe)来解决,以便为UNC路径添加完全信任。由于我们同时拥有64 bit
和32 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
答案 2 :(得分:2)
我们在Windows 2008 R2中遇到了类似的问题,我们的应用程序可以在64位模式下正常工作,但是切换到32位模式会停止运行并抛出权限错误,结果是,在IIS7下的高级设置>>过程模型>>默认情况下,“身份”设置已切换为“应用程序池标识”,可能需要更改为“网络服务”才能以32位模式运行。
我们做到了,现在我们顺利地哼唱着。想想这个信息的大小可能是每个人都指向文件夹权限的原因,因为从技术上讲它是文件夹权限问题。但是更改是在IIS中,而不是文件夹本身的安全设置。
答案 3 :(得分:2)
看来这是通用程序集不会加载错误。我感谢所有其他帖子,因为它们成为错误可能来源的列表。
我又发现了一个。我已经尝试了以上所有但没有成功。我终于意识到我从Visual Studios Express 2008发布了Web应用程序,其构建配置为“Debug”。将构建配置更改为“发布”后,Web App起作用。
具体细节: Visual Studios Express 2008将文件移动到Win 2008 R2服务器上的IIS7.5。
答案 4 :(得分:1)
我有类似的问题,我通过以下步骤解决了这个问题:
// define some HTML content with style
$html = <<<EOF
<!-- EXAMPLE OF CSS STYLE -->
<style>
h1 {
color: navy;
font-family: times;
font-size: 24pt;
text-decoration: underline;
}
input {
background-color: red;
padding: 5px 10px;
}
</style>
<h1 class="title">Example of <i style="color:#990000">XHTML + CSS</i></h1>
<input type="text" value="test.." />
EOF;
// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');
设置为load user profile
答案 5 :(得分:1)
她所属的问题是使用ddl不信任SharePoint 解决问题:
答案 6 :(得分:1)
答案 7 :(得分:-1)
旧问题,但我的答案被删除,因为我只发布了一个链接。
也许您会收到此错误: 错误:
无法加载文件或程序集“ Microsoft.Practices.EnterpriseLibrary.Configuration.Design,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = null”或其依赖项之一。无法授予最低权限请求。 (来自HRESULT的异常:0x80131417)
发生此错误是因为本地计算机的默认信任级别是“完全信任”,但在网络共享中则不是。
因此,要远程编译应用程序,您必须: 转到控制面板->行政工具-> Microsoft .NET Framework 2.0配置 打开“我的电脑”->“运行时安全策略”->“机器”>“代码组”>“所有代码”>“新建”(右键单击以显示菜单以选择“新建” )
在下图中,URL字段是共享文件夹的路径,在这种情况下,但是您可以选择“强名称”(.exe或.dll)等
单击“完成”,您可以编译您的应用程序!
https://medium.com/@marcoscavaleiro/failed-to-grant-minimum-permission-requests-7245cf694ebd
答案 8 :(得分:-2)
在IIS 6.0应用程序池高级设置中,在“Process Model”下,将Load User Profile设置为true。
还有其他一些要检查的东西,比如你的信任级别,但没有一个适用于我(它已经完全信任我的开发机器)。设置应用程序池以加载用户配置文件修复它。
有助于解决
无法在iis中获取所需的权限来解决它..