Removendo os aplicativos fantasmas dos Pools de Aplicativos no IIS7

36

Eu tenho um aplicativo em um dos meus pools de aplicativos que possui um caminho virtual de '/Site/login.aspx'. Eu quero removê-lo, mas ele não existe mais no meu computador e está me causando problemas ao configurar o AppFabric.

Entendo que você pode remover esses aplicativos fantasmas, recriando o aplicativo no IIS e, em seguida, pressionando Remover. Isso vai se livrar do aplicativo do pool, mas neste caso não posso recriar o aplicativo devido ao /login.aspx no caminho virtual

Alguma idéia de como remover essa entrada incorreta?

Obrigado

    
por Col 23.06.2011 / 17:32

7 respostas

42

Desde que eu tive o mesmo problema; pools de aplicativos com aplicativos que não existiam mais, fiz algumas pesquisas e finalmente consegui resolver o problema.

Aqui estão alguns passos:

  1. Localize e edite o arquivo de configuração do IIS 7 "applicationHost.config" com um editor de texto. Ele deve ser armazenado em " C: \ windows \ system32 \ inetsrv \ config " Como a pasta é de alguma forma "protegida", normalmente eu edito como o seguinte:
    1. Abra o Windows Explorer
    2. Navegue até "C: \ windows \ system32 \ inetsrv \ config"
    3. Copie o arquivo "applicationHost.config"
    4. Cole-o em uma pasta onde você possa editá-lo, por exemplo seu desktop
    5. Abra-o com o seu editor de escolha e edite-o
    6. Copie-o de volta com o Windows Explorer para "C: \ windows \ system32 \ inetsrv \ config"
  2. Faça um backup do seu arquivo "applicationHost.config"!
  3. Pesquise com um editor de texto em seu "applicationHost.config" para seus aplicativos não existentes. Eles devem estar localizados em algum lugar dentro de um nó XML <application ...> .
  4. Exclua o (s)% (s) nó (s)% de todos os seus aplicativos fantasmas.
  5. Salve o arquivo e copie-o de volta para "C: \ windows \ system32 \ inetsrv \ config"
  6. Atualize o console de gerenciamento do IIS. Seus pools de aplicativos agora devem estar sem os aplicativos fantasmas que você excluiu anteriormente.
  7. Na verdade, remova o pool de aplicativos agora vazio.

Isso funcionou para mim, se não funcionar para você, por favor, poste um comentário aqui. Uma boa ajuda foi esta postagem no fórum do IIS .

    
por 15.07.2011 / 07:40
2

Isso é provavelmente mais seguro e simples do que editar o 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]  
    
por 17.12.2016 / 21:58
1

Muito mais simples:

  1. Visualize o aplicativo obsoleto X e lembre-se do caminho (antigo) Y
  2. Crie o caminho / pasta (antigo) Y com o Explorer
  3. Atualizar o Console de Gerenciamento do IIS
  4. Você encontrará a pasta recém-criada Y e o aplicativo X atribuído
  5. Clique com o botão direito no aplicativo (antigo) X e escolha "Remover"
  6. Remover caminho Y com o Explorer
  7. Atualizar novamente o Console de Gerenciamento do IIS
  8. Viva
por 08.08.2016 / 15:37
1

Os aplicativos filhos não são excluídos automaticamente e o Gerenciador do IIS não pode exibi-los na árvore, então esse é o seu problema ...

Uma maneira rápida e robusta é usar um script do PowerShell para obter todos os aplicativos, testar se o caminho físico ainda existe e, caso contrário, excluir o aplicativo:

# 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
}
    
por 03.01.2018 / 17:16
1

Existe uma maneira fácil de corrigir isso.

  1. Selecione o site com os aplicativos do Phantom no pool de aplicativos.
  2. No menu "Ação" do lado direito, selecione "Visualizar aplicativos". Esta lista deve mostrar todos os aplicativos que estão no site, Fantasmas ou não.
  3. Tudo o que você precisa fazer é selecionar o Aplicativo e selecionar "Remover" no menu "Ação" correto.
por 22.03.2018 / 13:48
0

Por que não editar o MetaBase.xml diretamente? Claro, antes disso.

Ou crie um pool "temp", mova todos os outros aplicativos para lá, remova o pool de origs e renomeie (se necessário) o novo pool.

    
por 23.06.2011 / 18:19
0

Eu fiz uma combinação de duas respostas listadas acima, já que eu não queria mexer no applicationHost.config manualmente.

Passo 1 - Crie um pool de aplicativos temporários - digamos "temp".

Passo 2 -     Mova todos os aplicativos fantasmas para esse pool de aplicativos temporário.

Passo 3 - Use o Powershell de uma das respostas acima -

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]  

Voila!

    
por 16.07.2018 / 15:53