繁体   English   中英

错误500.19 - 基于UNC的IIS 7.5站点 - 文件权限问题

[英]Error 500.19 - IIS 7.5 Site based on UNC - File Permissions Problem

我正在尝试在我的IIS 7.5(Win 7 Pro机器)中获得一个网站,以通过UNC路径运行默认网站和底层应用程序之一的代码。 这是我第一次尝试在基于UNC路径的IIS 7.5中设置站点/应用程序:同一域中另一台服务器上的文件夹。

我尝试过各种各样的方法来解决这个问题。 应用程序池在我的Win 7 Pro PC上的ApplicationPoolIdentity下运行,我在此设置了此站点。

尝试通过http:// localhost / TheAppName在浏览器中运行应用程序时遇到的运行时错误是:

模块: IIS Web Core
通知:未知
处理程序:尚未确定
错误代码: 0x800700005
配置错误:由于权限不足,无法读取配置文件
配置文件: \\\\?\\UNC\\theServerName\\www\\TheAppName
请求的URL: http://localhost:80/TheAppName
物理路径:(没有显示在这里)
登录方法:尚未确定
登录用户:尚未确定

我为上面的服务器和应用程序名称添加了假名,以获取此帖子的隐私权。

因此,在阅读此站点的UNC路径中找到的web.config时遇到问题。

我尝试在目标服务器上添加本地用户,然后将该用户权限授予web.config,然后在我的计算机上将该用户RemoteServerName\\LocalUserICreated用作应用程序池的标识,但它没有任何效果。

不知道该怎么做以及如何去做。

我假设UNC路径是到另一台服务器?

如果是这两个服务器在同一个域中? 如果是这样,则IIS需要在具有读取文件权限的用户帐户下运行网站。

如果不是,则需要在Web服务器和文件存储服务器上创建相同的用户帐户(相同的用户名,相同的密码),然后更改IIS以在此用户帐户下运行网站。

希望这有助于/有效。

我花了几个小时才终于为自己解决了同样的问题。 原来我在物理路径上使用了错误的斜线。 它应该是\\,而不是//这些。

从UNC路径创建Web应用程序或虚拟目录时,需要为IIS提供连接的凭据。

在“添加应用程序”对话框中,“物理路径”部分下方是“连接为...”按钮 - 然后您可以选择“应用程序用户(传递身份验证)”或“特定用户”。

您选择的是,它们必须是远程服务器可识别的凭据 - “传递”将尝试使用当前桌面(或浏览器)凭据来验证用户(如果您通过VPN连接)根据你的意见)几乎肯定不会有效。 在这种情况下,您应该使用“特定用户”并提供(理想情况下)具有适当权限的域用户来运行该站点。

当我们过去需要这样做时,我们会在本地AppPools运行的域上创建一个帐户,然后这也可以在这些情况下使用。

如果您已经创建了应用程序,则可以使用“基本设置...”操作链接访问该对话框。

ZhaphAlan都确定了微软提出的解决方案。 以下是Microsoft针对您的问题页面的其他信息:

原因

IIS 6.0使用托管工作进程标识连接到远程目录。 然后,IIS 6.0根据远程目录对用户进行身份验证。 但是,IIS 7.0引入了委派方案。 在IIS 7.0中,您可以将Web站点设置和应用程序级设置委派给Web.config文件。

对于传递身份验证,Web.config文件存储在UNC目录中。 因此,IIS 7.0中的默认进程标识必须首先检查Web.config文件,以确定在身份验证过程开始之前是否必须应用任何与安全相关的设置。 IIS 7.0中的默认进程标识没有足够的权限来打开Web.config文件。 因此,Web请求被拒绝。

如果UNC目录中没有Web.config文件,则IIS 7.0将使用为父目录定义的规则。 对于在此方案中提供的Web内容,工作进程标识必须能够访问整个内容目录。 否则,Web请求被拒绝。

解析度

若要解决此问题并确保传递身份验证正常工作,请按照下列步骤操作:

  1. 确保访问UNC目录的所有用户帐户至少具有UNC目录的读取权限。

    注意此行为与IIS 6.0中的行为相同。

  2. 确保IIS工作进程标识在域帐户下或在UNC文件服务器上也存在的工作组帐户下运行。 如果有必要,请在UNC文件服务器上创建一个帐户,该帐户具有与IIS工作进程标识相同的用户名和密码。

    笔记

    • 此行为与IIS 6.0中的行为不同。
    • 默认情况下, DefaultAppPool应用程序池在网络服务帐户下运行。 此帐户是计算机的本地帐户,此帐户在另一台计算机上不存在。 因此,请确保将DefaultAppPool应用程序池配置为使用域用户的帐户。 然后,您可以在UNC文件服务器上使用相同的帐户。 或者,您可以在UNC文件服务器和运行IIS 7.0的计算机上创建工作组帐户。
  3. 如果UNC目录中有Web.config文件,请编辑Web.config文件的自主访问控制列表(DACL),以便DACL包含您在步骤2中验证的帐户。或者,编辑Web的DACL .config文件,以便DACL包含您在步骤2中创建的帐户。

    如果UNC目录中没有Web.config文件,请编辑UNC目录的DACL,以便DACL包含您在步骤2中验证的帐户。或者,编辑UNC目录的DACL,以便DACL包含该帐户您在第2步中创建的。

    注意此行为与IIS 6.0中的行为不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM