从 IIS7 中的应用程序池中删除虚拟应用程序

Col*_*Col 44 iis iis-7 application-pools

我的一个应用程序池中有一个应用程序,其虚拟路径为/Site/login.aspx. 我想删除它,但它不再存在于我的计算机上,这导致我在设置 AppFabric 时出现问题。

我知道您可以通过在 IIS 中重新创建应用程序然后点击删除来删除这些幻影应用程序。这将从池中删除应用程序,但在这种情况下,由于/login.aspx在虚拟路径中,我无法重新创建应用程序

任何想法如何删除这个错误条目?

Uwe*_*eim 49

因为我有同样的问题;应用程序池中的应用程序不再存在,我做了一些研究,最终设法解决了这个问题。

以下是一些步骤:

  1. 使用文本编辑器找到并编辑 IIS 7 配置文件“applicationHost.config”。它应该存储在“ C:\windows\system32\inetsrv\config ” 由于文件夹以某种方式“受保护”,我通常编辑如下:
    1. 打开 Windows 资源管理器
    2. 导航到“C:\windows\system32\inetsrv\config”
    3. 复制文件“applicationHost.config”
    4. 将其粘贴到您可以编辑的文件夹中,例如您的桌面
    5. 用你选择的编辑器打开它并编辑它
    6. 使用 Windows 资源管理器将其复制回“C:\windows\system32\inetsrv\config”
  2. 备份您的“applicationHost.config”文件!
  3. 在“applicationHost.config”中使用文本编辑器搜索不存在的应用程序。它们应该位于<application ...>XML 节点内的某个位置。
  4. 删除<application ...>所有虚拟应用程序的节点。
  5. 保存文件并将其复制回“C:\windows\system32\inetsrv\config”
  6. 刷新 IIS 管理控制台。您的应用程序池现在应该没有您之前删除的虚拟应用程序。
  7. 实际上删除现在空的应用程序池。

这对我有用,如果它对您不起作用,请在此处发表评论。一个很好的帮助是IIS 论坛上的这个帖子

另请注意,直接在原始位置编辑“applicationHost.config”文件时,需要使用 64 位编辑器(例如 Notepad++ 64 位),否则它会存储在“C:\Windows\ SysWOW64\inetsrv\Config”而不是正确的位置

  • 另外,我看到了这篇文章。我没有使用它,因为上面的解决方案对我有用 [狩猎僵尸 - 如何删除孤立的 iis Web 应用程序](http://social.technet.microsoft.com/wiki/contents/articles/hunting-zombies-how- to-remove-orphaned-iis-web-applications.aspx) (6认同)

Gre*_*kew 6

这可能比编辑 applicationHost.config 更安全、更简单。

Powershell  
PS C:\Windows\system32> import-module WebAdministration
PS C:\Windows\system32> iis:
PS IIS:\> cd .\AppPools
PS IIS:\AppPools> ls
PS IIS:\AppPools> del [name of phantom AppPool]  
Run Code Online (Sandbox Code Playgroud)


小智 5

有一个简单的方法可以解决这个问题。

  1. 选择应用程序池中包含 Phantom 应用程序的站点。
  2. 在右侧的“操作”菜单中选择“查看应用程序”。此列表应显示站点中的所有应用程序(无论是否为 Phantom)。
  3. 您所需要做的就是选择应用程序,然后在右侧的“操作”菜单中选择“删除”。

  • 不幸的是,“幽灵”应用程序的部分症状是它没有可见的此操作。 (2认同)