У меня есть приложение в одном из моих пулов приложений, виртуальный путь которого /Site/login.aspx
. Я хочу удалить его, но он больше не существует на моем компьютере, и у меня возникают проблемы с настройкой AppFabric.
Я понимаю, что вы можете удалить эти фантомные приложения, воссоздав приложение в IIS и нажав «Удалить». Это позволит избавиться от приложения из пула, но в этом случае я не могу воссоздать приложение из-за /login.aspx
в виртуальном пути
Есть идеи, как удалить эту ошибочную запись?
Поскольку у меня была такая же проблема; пулы приложений с приложениями, которых больше не существует, я провел небольшое исследование и, наконец, смог решить проблему.
Вот несколько шагов:
<application ...>
Узел XML.<application ...>
узел (ы) всех ваших фантомных приложений.Это сработало для меня, если это не сработает для вас, оставьте комментарий здесь. Хорошая помощь была это сообщение на форуме IIS.
Вероятно, это безопаснее и проще, чем редактировать 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]
Дочерние приложения не удаляются автоматически, и диспетчер IIS не может отобразить их в дереве, так что это ваша проблема ...
Быстрый и надежный способ - использовать сценарий PowerShell для получения всех приложений, проверить, существует ли еще физический путь, а если нет, удалить приложение:
# This is for IIS 7, make sure the snap-in is installed first: https://www.iis.net/downloads/microsoft/powershell
Add-PSSnapin WebAdministration
# Get all IIS sites
Get-ChildItem IIS:\Sites | foreach {
$site = $_;
# Get all applications without existing physical path
$applications = Get-ChildItem $site.PsPath | Where-Object { $_.NodeType -eq "application" -and (Test-Path $_.PhysicalPath) -eq $False };
# List all phantom applications
$applications | FT
# Remove applications
$applications | Remove-WebApplication -Site $site.Name
}
Гораздо проще:
Есть простой способ исправить это.
Почему бы не отредактировать MetaBase.xml напрямую? Конечно, перед этим сделайте резервную копию.
Или создайте «временный» пул, переместите туда все другие приложения, удалите исходный пул и переименуйте (при необходимости) новый пул.
Я сделал комбинацию из двух ответов, перечисленных выше, поскольку я не хотел вручную переделывать applicationHost.config.
Шаг 1 - Создайте временный пул приложений - скажем, «временный».
Шаг 2. Переместите все фантомные приложения в этот пул временных приложений.
Шаг 3 - Используйте Powershell из одного из ответов выше -
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]
Вуаля!