使用 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 上回答了一个类似的问题,希望它能解释为什么会发生这种情况: