Назад | Перейти на главную страницу

Удаление фантомных приложений из пулов приложений в IIS7

У меня есть приложение в одном из моих пулов приложений, виртуальный путь которого /Site/login.aspx. Я хочу удалить его, но он больше не существует на моем компьютере, и у меня возникают проблемы с настройкой AppFabric.

Я понимаю, что вы можете удалить эти фантомные приложения, воссоздав приложение в IIS и нажав «Удалить». Это позволит избавиться от приложения из пула, но в этом случае я не могу воссоздать приложение из-за /login.aspx в виртуальном пути

Есть идеи, как удалить эту ошибочную запись?

Поскольку у меня была такая же проблема; пулы приложений с приложениями, которых больше не существует, я провел небольшое исследование и, наконец, смог решить проблему.

Вот несколько шагов:

  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.

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
}

Гораздо проще:

  1. Просмотрите устаревшее приложение X и запомните (старый) путь Y
  2. Создайте (старый) путь / папку Y с помощью проводника
  3. Обновите консоль управления IIS
  4. Вы найдете только что созданную папку Y и назначенное приложение X
  5. Щелкните правой кнопкой мыши (старое) приложение X и выберите «Удалить».
  6. Удалить путь Y с помощью проводника
  7. Снова обновите консоль управления IIS.
  8. Ура

Есть простой способ исправить это.

  1. Выберите сайт с фантомными приложениями в пуле приложений.
  2. Справа в меню «Действие» выберите «Просмотр приложений». В этом списке должны быть показаны все приложения, которые есть на сайте, фантомные или нет.
  3. Все, что вам нужно сделать, это выбрать приложение и выбрать «Удалить» в правом меню «Действия».

Почему бы не отредактировать 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]  

Вуаля!