在Windows 2008 R2上,我可以为应用程序池综合的ApplicationPoolIdentity帐户设置NTFS权限:
ICACLS d:\websites\site1\www /grant "IIS AppPool\site1":(CI)(OI)(M)
该网站的应用程序池被命名为site1 ,并被configuration为以ApplicationPoolIdentity身份运行。 该网站的身份validation也被configuration为validation为ApplicationPoolIdentity 。 我已经在Windows 2008 Standard Edition R2上做了这一千次,而且从来没有碰到过。
但是,如果我尝试在Windows 2008标准版SP2中做同样的事情,我得到的错误:
IIS AppPool \ site1:帐户名称和安全ID之间没有映射完成。 成功处理0个文件; 处理1个文件失败
我也注意到,如果我尝试通过安全GUI为应用程序池标识设置权限,则失败。 我以前见过这个,重启已经解决了这个问题,但我想知道为什么会发生这种情况。 谷歌search表明其他人已经遇到了这个问题,但从来没有一个令人满意的解释。
为什么会这样?
嘿凯文。 用于虚拟映射的Windows服务是“应用程序主机帮助程序服务”(AppHostSvc)。 仔细检查它是否正确运行,并且由于重新启动后问题自行解决,下次重新启动该服务,看看它是否暂时解决问题。
这听起来像你所知道的,但在R2之前,你可以从命令行添加用户,但是你可以从安全GUI(只要一切正常)就可以“pipe理”它。 在R2中,您还可以通过input全名(例如IIS AppPool \ site1)将其添加到GUI中。
我在另一个Windows 2008 Standard Edition SP2服务器(上面提到的服务器的基本映像)上testing了这个,并且不能重现这个错误。
我重新启动服务器,这个问题神奇地自我修复(再次)。 我想明天我会和MS PSS一起筹集一张麻烦票。
我得到这个错误,当我inputAppPool用户不正确,使用“/”而不是“\”:
icacls "e:\temp" /grant "IIS AppPool/Site1":(OI)(CI)F /T
更正用户名解决了这个问题:
icacls "e:\temp" /grant "IIS AppPool\Site1":(OI)(CI)F /T