System.Security.SecurityException:对'System.Security.Permissions.EnvironmentPermission,mscorlib'类型的权限的请求失败

时间:2011-12-12 05:18:20

标签: c# asp.net iis-7.5 runtime-error

当我尝试运行“已发布的”本地网站时出现以下错误。

  

'/'应用程序中的服务器错误。

     
     

安全例外

     

描述:应用程序尝试执行安全策略不允许的操作。要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别。

     

异常详细信息System.Security.SecurityException:请求'System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'类型的权限失败。

     

来源错误:

     

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

     

堆栈追踪:

[SecurityException: Request for the permission of type 'System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
   System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
   System.Security.CodeAccessPermission.Demand() +54
   System.Environment.ExpandEnvironmentVariables(String name) +650
   cc..cctor() +88
     
     

版本信息: Microsoft .NET Framework版本:2.0.50727.4927; ASP.NET版本:2.0.50727.4927

在阅读了一些博客后,我在Web.config中添加了以下内容,但仍然有相同的错误。

<system.web>
    <trust level="Full"/> ...

IIS中是否有任何设置来配置信任级别?我想在不改变文件背后的代码的情况下克服错误。

2 个答案:

答案 0 :(得分:5)

如果您可以访问IIS管理器(inetmgr),则可以设置应用程序的信任级别:

  • 开始&gt;运行&gt; INETMGR
  • 选择您的网站
  • 点击“.NET Trust Levels”
  • 在下拉列表中选择“完全信任”

要在iis服务器的全局级别更改此配置,请在服务器上使用以下命令行:

appcmd set config /commit:WEBROOT /section:trust /level:Full

以下是该信息的MSDN来源:http://technet.microsoft.com/en-us/library/cc753658(WS.10).aspx

答案 1 :(得分:0)

如果将信任级别设置为“完全”不起作用,则可以尝试将应用程序池用户更改为有权访问该路径的用户。