我有一些运行带有 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
除了上面的评论之外,还有一个工具可以扫描此问题。虽然不是最优雅的代码,但可能对某些人有用。