我创建了一个IIS管理工具,用于创建新应用程序,将它们分配给新的AppPool,并为与该AppPool关联的标识添加所需的文件夹ACL。根据{{3}},每当创建新的应用程序池时,IIS管理进程都会创建一个安全标识符(SID),表示应用程序池本身的名称。
但在我的Windows 8 Pro计算机(IIS8)上似乎并非如此。只有在与AppPool关联的应用程序启动时才会创建SID。这使得设置文件夹ACL的任务变得非常困难,应用程序需要在创建AppPool标识之前启动,但除非设置了ACL,否则应用程序将无法运行...鸡和鸡蛋。
这里发生了什么?我的Win8机器上有错误吗?这是Win8 / IIS8的一般行为吗?我在Server 2008 R2(IIS 7.5)上没有任何问题,只要在IIS中创建AppPool, 就会创建AppPool标识SID。
我知道在创建AppPool和创建SID之间存在不确定的延迟。这通常不到一秒钟。在这种情况下,延迟似乎无限期(几分钟后,SID仍然不存在)。
答案 0 :(得分:0)
似乎只有在进程运行时才会创建SID。我有一个相关的问题,HKEY_USERS下的注册表配置单元在重新启动后完全消失。测试表明,只要我的Web服务启动(即第一次请求),注册表配置单元就完全恢复,并且相同的SID和内容已完全恢复,所以我想一旦您第一次获得SID,就可以将它用于相同的目的,即使重启后它还没有存在。让安全系统相信你的命名错误可能仍然是一个问题。