J'ai une application dans l'un de mes pools d'applications qui a un chemin virtuel de "/Site/login.aspx". Je souhaite le supprimer mais il n'existe plus sur mon ordinateur et cela me pose des problèmes lors de la configuration d'AppFabric.
Je comprends que vous pouvez supprimer ces applications fantômes en recréant l'application dans IIS puis en appuyant sur Supprimer. Cela supprimera l'application du pool, mais dans ce cas, je ne peux pas recréer l'application en raison de /login.aspx dans le chemin virtuel
Des idées sur la façon de supprimer cette entrée erronée?
Merci
Depuis que j'ai eu le même problème; des pools d'applications avec des applications qui n'existaient plus, j'ai fait quelques recherches et j'ai finalement réussi à résoudre le problème.
Voici quelques étapes:
<application ...>
Noeud XML.<application ...>
nœud (s) de toutes vos applications fantômes.Cela a fonctionné pour moi, si cela ne fonctionne pas pour vous, veuillez poster un commentaire ici. Une bonne aide a été cette publication sur le forum IIS .
C'est probablement plus sûr et plus simple que d'éditer 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]
Les applications enfants ne sont pas supprimées automatiquement et le gestionnaire IIS ne peut pas les afficher dans l'arborescence, c'est donc votre problème ...
Un moyen rapide et robuste consiste à utiliser un script PowerShell pour obtenir toutes les applications, tester si le chemin physique existe toujours et sinon, supprimer l'application:
# 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
}
Il existe un moyen simple de résoudre ce problème.
Beaucoup plus simple:
J'ai fait une combinaison de deux réponses énumérées ci-dessus car je ne voulais pas bricoler manuellement applicationHost.config.
Étape 1 - Créez un pool d'applications temporaire - disons "temp".
Étape 2 - Déplacez toutes les applications fantômes vers ce pool d'applications temporaires.
Étape 3 - Utilisez Powershell à partir de l'une des réponses ci-dessus -
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!
Pourquoi ne pas modifier directement MetaBase.xml? Bien sûr, sauvegardez-le avant cela.
Ou créez un pool "temporaire", déplacez-y toutes les autres applications, supprimez le pool d'origine et renommez (si nécessaire) le nouveau pool.