2013-05-13 51 views
3

我创建了一个IIS管理工具,用于创建新的应用程序,将它们分配给新的AppPool,并为与该AppPool关联的标识添加必需的文件夹ACL。根据this article每当创建新的应用程序池时,IIS管理进程都会创建一个安全标识符(SID),表示应用程序池本身的名称。IIS何时创建AppPool标识?

但是,我的Windows 8 Pro机器(IIS8)似乎并不是这种情况。只有在与AppPool相关的应用程序启动时才会创建SID。这使得设置文件夹ACL的任务非常困难,应用程序需要在创建AppPool标识之前启动,但是除非设置了ACL ...鸡蛋和鸡蛋,否则应用程序将无法工作。

这是怎么回事吗?我的Win8机器上有错误吗?这是一般的Win8/IIS8行为?我在Server 2008 R2(IIS 7.5)上没有问题,它在的地方创建了AppPool身份SID,只要在IIS中创建AppPool。

我知道有一个不确定的延迟创建AppPool和创建SID之间。这通常不到一秒钟。在这种情况下,延迟似乎是不确定的(几分钟后,SID仍然不存在)。


+0

非常奇怪的是,在Windows Server 2012标准机器上,IIS 8没有遇到这个问题。两者都是相同版本的IIS - 8.0.9200.16384。并且都具有相同的应用程序池默认值。 – Snixtor 2013-05-14 00:40:44

回答

0

这似乎是该SID只创建一次,正在运行的进程。我有一个相关的问题,HKEY_USERS下的注册表配置单元在重新启动后完全消失。测试表明,只要我的Web服务启动(即第一次请求)时,注册表配置单元就会完全恢复完整,并且具有相同的SID并且内容已完全恢复,所以我猜想一旦您第一次获得SID,就可以将其用于即使在重新启动后它还不存在,也是一样的目的。让安全系统相信你没有犯命名错误可能仍然是一个问题。