【问题标题】:Access to the path '0' is denied IIS 7IIS 7 拒绝访问路径“0”
【发布时间】:2012-07-04 06:20:27
【问题描述】:

我有一个使用 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 帐户,然后选中所需访问权限的复选框。

【问题讨论】:

    标签: iis-7


    【解决方案1】:

    您必须查看运行您的 ASP.net 站点的应用程序池的标识,并确保该帐户有权访问其他服务器上的资源。

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

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

    希望对某人有所帮助。

    【讨论】:

    • 谢谢。我不得不在两个不同的服务器上检查这个答案+++++
    猜你喜欢
    • 2015-04-06
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多