it-swarm.com.de

Entfernen von Phantomanwendungen aus Anwendungspools in IIS7

Ich habe eine Anwendung in einem meiner Anwendungspools mit dem virtuellen Pfad '/Site/login.aspx'. Ich möchte es entfernen, aber es ist auf meinem Computer nicht mehr vorhanden und verursacht Probleme beim Einrichten von AppFabric.

Ich verstehe, dass Sie diese Phantomanwendungen entfernen können, indem Sie die Anwendung in IIS] neu erstellen und dann auf Entfernen klicken. Dadurch wird die Anwendung aus dem Pool entfernt, aber in diesem Fall kann ich die Anwendung nicht neu erstellen aufgrund der Datei /login.aspx im virtuellen Pfad

Irgendwelche Ideen, wie ich diesen fehlerhaften Eintrag entferne?

Vielen Dank

39
Col

Da hatte ich das gleiche Problem; Anwendungspools mit Anwendungen, die nicht mehr existierten, ich habe einige Nachforschungen angestellt und es schließlich geschafft, das Problem zu lösen.

Hier sind einige Schritte:

  1. Suchen und bearbeiten Sie Ihre IIS 7 - Konfigurationsdatei "applicationHost.config" mit einem Texteditor. Sie sollte in " C:\windows\system32\inetsrv\config gespeichert werden "Da der Ordner irgendwie" geschützt "ist, bearbeite ich normalerweise wie folgt:
    1. Öffnen Sie den Windows Explorer
    2. Navigieren Sie zu "C:\windows\system32\inetsrv\config".
    3. Kopieren Sie die Datei "applicationHost.config"
    4. Fügen Sie es in einen Ordner ein, in dem Sie es bearbeiten können, z. Ihr Desktop
    5. Öffnen Sie es mit Ihrem ausgewählten Editor und bearbeiten Sie es
    6. Kopieren Sie es mit Windows Explorer zurück nach "C:\windows\system32\inetsrv\config".
  2. Erstellen Sie eine Sicherungskopie Ihrer Datei "applicationHost.config"!
  3. Suchen Sie mit einem Texteditor in Ihrer "applicationHost.config" nach Ihren nicht vorhandenen Anwendungen. Sie sollten sich irgendwo in einem <application ...> XML-Knoten befinden.
  4. Löschen Sie die <application ...> - Knoten aller Ihrer Phantomanwendungen.
  5. Speichern Sie die Datei und kopieren Sie sie zurück nach "C:\windows\system32\inetsrv\config".
  6. Aktualisieren Sie die Verwaltungskonsole IIS. Ihre Anwendungspools sollten jetzt ohne die zuvor gelöschten Phantomanwendungen sein.
  7. Entfernen Sie tatsächlich den jetzt leeren Anwendungspool.

Das hat bei mir funktioniert, wenn es bei Ihnen nicht funktioniert, schreiben Sie bitte hier einen Kommentar. Eine gute Hilfe war dieser Beitrag im IIS Forum .

44
Uwe Keim

Dies ist wahrscheinlich sicherer und einfacher als das Bearbeiten von 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]  
4
Greg Askew

Untergeordnete Anwendungen werden nicht automatisch gelöscht und der IIS Manager kann sie nicht in der Baumstruktur anzeigen, das ist also Ihr Problem ...

Eine schnelle und zuverlässige Möglichkeit besteht darin, mithilfe eines PowerShell-Skripts alle Anwendungen abzurufen, zu testen, ob der physische Pfad noch vorhanden ist, und die Anwendung zu löschen, wenn nicht:

# 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
}
2
Ronald

Es gibt eine einfache Möglichkeit, dies zu beheben.

  1. Wählen Sie die Site mit den Phantom-Anwendungen im Anwendungspool aus.
  2. Wählen Sie im Menü "Aktion" auf der rechten Seite "Anwendungen anzeigen". Diese Liste sollte alle Anwendungen auf der Site anzeigen, Phantom oder nicht.
  3. Sie müssen lediglich die Anwendung auswählen und im rechten Menü "Aktion" die Option "Entfernen" auswählen.
1
Oddvar

Viel einfacher:

  1. Zeigen Sie die veraltete Anwendung X an und merken Sie sich den (alten) Pfad Y.
  2. Erstellen Sie den (alten) Pfad/Ordner Y mit dem Explorer
  3. Aktualisieren IIS Management Console
  4. Sie finden den gerade erstellten Ordner Y und die zugewiesene Anwendung X.
  5. Klicken Sie mit der rechten Maustaste auf (alte) Anwendung X und wählen Sie "Entfernen".
  6. Entfernen Sie den Pfad Y mit dem Explorer
  7. Aktualisieren Sie IIS Management Console erneut
  8. Hurra
1
Mathias Sch.

Ich habe eine Kombination aus zwei oben aufgeführten Antworten durchgeführt, da ich applicationHost.config nicht manuell basteln wollte.

Schritt 1 - Erstellen Sie einen temporären App-Pool - sagen wir "temp".

Schritt 2 - Verschieben Sie alle Phantomanwendungen in diesen temporären App-Pool.

Schritt 3 - Verwenden Sie Powershell aus einer der obigen Antworten -

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!

0
nixish

Warum nicht MetaBase.xml direkt bearbeiten? Sichern Sie es natürlich vorher.

Oder erstellen Sie einen "temporären" Pool, verschieben Sie alle anderen Apps dorthin, entfernen Sie den ursprünglichen Pool und benennen Sie den neuen Pool (falls erforderlich) um.

0
Sunny