IIS 7拒绝访问路径“0”

时间:2012-07-03 18:54:57

标签: iis-7

我有一个在ASP.net 4.0中开发并在IIS7(ProdServer)中托管的Web应用程序。 在其中一个页面中,我正在创建一个文件并将其存储在\ someOtherServer \ Storage \中 文件夹中。

当我登录到生产服务器并点击运行和\ someOtherServer \ Storage \时 我可以浏览该文件夹。

当我运行我的ASP.net应用程序时,我收到错误 拒绝访问路径“0”。

异常详细信息:System.UnauthorizedAccessException:拒绝访问路径“0”。

ASP.NET无权访问所请求的资源。考虑将资源的访问权限授予ASP.NET请求标识。 ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE} \ ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户。

要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加适当的用户或组。突出显示ASP.NET帐户,并选中所需访问的框。

1 个答案:

答案 0 :(得分:5)

您必须查看运行ASP.net网站的apppool的身份,并确保该帐户对其他服务器上的资源具有权限。

要在IIS 7中执行此操作,请执行以下操作:

  • 打开IIS管理器并浏览到发生这种情况的网站。
  • 右键点击该网站,然后选择管理应用程序 - >高级设置。
  • 最顶层的设置将显示您正在运行的应用程序池的名称。最有可能是DefaultAppPool,但它也可能是其他东西(最好是它应该是别的东西)。
  • 现在取消并单击IIS管理器中的“应用程序池”节点,右键单击上面显示的应用程序池,然后选择高级设置。
  • 查看流程模型下的身份设置 - 这可能是ApplicationPoolIdentity。要访问另一台计算机上的资源,您必须将其作为NetworkService或域帐户运行。我建议你尝试一个然后另一个。域帐户应该是密码不会过期的服务帐户(否则每次过期都必须在此处重新键入)。确保域帐户可以访问远程服务器上的共享资源。

希望有人帮助。