![IIS 应用程序出现在 appcmd 中,但未出现在 IIS 管理器树视图中](https://linux22.com/image/624618/IIS%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%87%BA%E7%8E%B0%E5%9C%A8%20appcmd%20%E4%B8%AD%EF%BC%8C%E4%BD%86%E6%9C%AA%E5%87%BA%E7%8E%B0%E5%9C%A8%20IIS%20%E7%AE%A1%E7%90%86%E5%99%A8%E6%A0%91%E8%A7%86%E5%9B%BE%E4%B8%AD.png)
我有一些运行带有 IIS 7 的 Windows Server 2008 Std 的 Web 服务器。
我注意到配置中有一个奇怪的现象。我看到 appcmd 中的一些应用程序和虚拟目录没有显示在 IIS 管理器的树视图中。请注意,这不是由于应用程序显示在 appcmd 中的 vdir 列表中而导致的混淆!
例如,从 appcmd list app:-
APP "BaseMetals/_testing_/Cache" (applicationPool:MyDeskBMCache)
APP "BaseMetals/_testing_/CCache" (applicationPool:ContentCache)
APP "BaseMetals/_testing_/scoop" (applicationPool:ScoopPublic4)
从 appcmd list vdir 中:-
VDIR "BaseMetals/_testing_/Cache/" (physicalPath:D:\fm_websites\BM\MyDesk\Cache)
VDIR "BaseMetals/_testing_/CCache/" (physicalPath:D:\fm_websites\FMContentCache_MYDESK)
VDIR "BaseMetals/_testing_/scoop/" (physicalPath:D:\fm_websites\Scoop\Scoop Public)
如果我在 IIS 管理器中选择站点“BaseMetals”并单击“查看应用程序”,我可以在那里的列表中看到这些应用程序。如果我选择相关的应用程序池并单击那里的“查看应用程序”,它们也会显示出来。但是,它们肯定不会出现在左侧的树中。
为什么这些应用程序没有显示?它们的配置有问题吗?如何使用 appcmd 或 powershell 提取损坏的应用程序/vdir 条目列表以清除它们?
答案1
除了上面的评论之外,还有一个工具可以扫描此问题。虽然不是最优雅的代码,但可能对某些人有用。