System.Security.SecurityException?

时间:2012-07-17 14:23:10

标签: asp.net .net iis-7

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

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

我的代码在我的本地服务器中正常运行,在将其上传到服务器时会产生问题。

已经完成了以下代码,但它对我不起作用:

样本1:

<system.web>
  <securityPolicy>
    <trustLevel name="Full" policyFile="internal"/>
  </securityPolicy>
</system.web>

样本2:

<location allowOverride="false">
  <system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low"  policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
    </securityPolicy>
  </system.web>
</location>

样本3:

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

我无法访问IIS我只有FTP详细信息才能上传文件。请建议我从webconfig文件中解决它的选项。

2 个答案:

答案 0 :(得分:15)

您在示例三中使用的方法与我的解决方案类似,但我没有添加您拥有的其他属性。试试这个简单的方法。

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

这来自MSDN posting我读过。

答案 1 :(得分:0)

注意:如果您使用的是共享主机,则它们通常具有允许对文件进行读/写访问的Web界面。

我不建议,但您可以冒充特定帐户:

<system.web>
    <identity impersonate="true" username="user" password="pass" />
</system.web>

否则,请确保您已授予试图访问应用程序池中使用的Identity的文件的正确权限。

Specify an Identity for an Application Pool (IIS 7)