无法为Windows 2008 SP2上的ApplicationPoolIdentity设置NTFS权限

在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