问题 System.Security.SecurityException?


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

例外细节: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文件中解决它的选项。


12361
2017-07-17 14:23


起源

服务器在哪里? - leppie
您需要在IIS(或用于Web托管的管理控制台)中将app_data文件夹和信任级别设置为“高”或“完整”的写入权限。升级时,文件权限可能会被覆盖,可能需要重置。最近我在2.5.0.11中看到了这个错误,并且不得不在web.config中添加完全信任指令 - 尽管IIS告诉我它已经完全信任了。不知道为什么,但它修复了它。 - Abhijeetchindhe


答案:


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

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

这来自于 MSDN发帖 我读。


11
2018-02-28 04:35





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

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

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

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

指定应用程序池的标识(IIS 7)


0
2017-07-17 14:29



HUmm也试过上面的代码。它没有解决我的问题...感谢您的建议。 - Yashwant Kumar Sahu
您使用的是共享主机吗? - rick schott
是的我有共享主机.. - Yashwant Kumar Sahu