IIS7 Metabase 与 ADSI 接口

IIS7 Metabase 与 ADSI 接口

使用 Vista...

我有一个使用 ADSI 在 IIS 网站上设置 ScriptMaps 的脚本。运行脚本后,当我查看 IIS 管理器时,我可以看到我添加的处理程序映射。

如果我随后在 IIS 管理器中删除这些处理程序映射,然后运行另一个 ADSI 脚本来查询 ScriptMaps 属性,则脚本中检索到的 ScriptMaps 仍会列出已删除的扩展。换句话说,ADSI 脚本中的结果与 IIS 管理器中显示的“处理程序映射”列表不一致。

即使我启动/停止 IISADMIN 和 W3SVC,也会发生这种情况。

这是预期的行为吗?我认为 ADSI 在 IIS7 中作为“兼容模式”受到支持。

我相信,如果通过 IIS 管理器删除了处理程序映射,并且 IIS 管理器 UI 指示它已消失,那么它就真的消失了,即使它仍然从 ADSI 查询中返回。

有人可以对此作出澄清吗?

答案1

您说得对,这不是预期的行为。ADSI 或 IIS 管理器的设置应立即应用并被对方看到。

尝试直接查看 metabase.xml,看看是否能知道发生了什么。这可能是一些继承混乱。

metabase.xml 位于 c:\windows\system32\inetsrv\metabase.xml。

如果您想使用文本编辑器编辑 metabase.xml,请确保从 IIS 管理器 -> 顶级属性中打开元数据库直接编辑(这样做是安全的)。

答案2

我刚刚在 Stack Overflow 上回答了一个类似的问题,希望它能解释为什么会发生这种情况:

在 Vista 上,针对 IIS 的 ADSI 查询与 IIS 管理器不一致(答案)

相关内容