【问题标题】:When does IIS create an AppPool identity?IIS 何时创建 AppPool 标识?
【发布时间】:2013-05-08 03:02:06
【问题描述】:

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


【问题讨论】:

  • 奇怪的是,我在装有 IIS 8 的 Windows Server 2012 Standard 机器上没有遇到此问题。两者都是相同版本的 IIS - 8.0.9200.16384。并且两者都具有相同的应用程序池默认值。

标签: iis application-pool


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2013-12-08
    • 1970-01-01
    相关资源
    最近更新 更多