3

我创建了一个 IIS 管理工具,旨在创建新应用程序,将它们分配给新的 AppPool,并为与该 AppPool 关联的身份添加所需的文件夹 ACL。根据这篇文章每当创建一个新的应用程序池时,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 仍然不存在)。


4

1 回答 1

0

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

于 2015-03-16T09:39:10.693 回答