Der IIS (Internet Information Services) unter Windows Server 2019 kann durchaus in einen Zustand geraten, in dem bestimmte Management-Funktionen nicht mehr so funktionieren wie gewünscht. Eine Möglichkeit Abhilfe zu schaffen, kann eine saubere Neuinstallation des IIS sein. Dieser Blog-Artikel erklärt, wie man es macht, ohne gleich den gesamten Windows Server neu aufzusetzen.
Diskussion
Der IIS ist der Standard-Webserver unter Windows 2019. Der komplette Name lautet übrigens Internet Information Services for Windows Server.
Bei einem IIS-Problem versucht man zunächst die Konfiguration anzupassen oder fehlende Features nachzuinstallieren. Und in der Regel führt dies auch zum Erfolg. Soweit zum Alltag beim Administrieren des IIS. Manchmal aber entsteht eine Situation, bei der ein Problem nur durch Neuinstallation des IIS zu lösen ist.
Ein Beispiel wären Fehlermeldungen beim Einsatz von AppCmd.exe, die auch nach hartnäckiger Suche nicht gelöst werden können:
Process 'appcmd.exe' exited with code '87'
AppCmd.exe ist das Standard-Kommandozeilenwerkzeug zum Administrieren von IIS. Es wird u.a. gerne im Kontext von CD (Continuous Delivery) eingesetzt.
Entscheidet man sich nun zu einer Neuinstallation des IIS, hat man in der Regel zwei Möglichkeiten:
-
Man installiert einen neuen, separaten Windows 2019 Server, migriert den Inhalt dorthin und schaltet den fehlerhaften Windows Server ab. Mit dieser Strategie kann man die Ausfallzeit eines Servers auf ein absolutes Minimum reduzieren.
-
Man setzt lediglich den IIS zurück, indem man ihn de- und anschließend wieder neuinstalliert. Diese Strategie empfiehlt sich, wenn man keine weitere Server-Ressource zu Verfügung hat und eine etwas längere Ausfallzeit zu verkraften ist.
Strategie Nr. 2 wollen wir uns genauer anschauen. Ganz grob ist die Vorgehensweise wie folgt:
- Backup der aktuellen IIS-Konfiguration
- Eine saubere Deinstallation des IIS
- Eine erneute Installation des IIS
- Wiederherstellung der vorherigen IIS-Konfiguration.
Backup der aktuellen IIS-Konfiguration
Zunächst muss der IIS vollständig gestoppt werden:
-
Öffne
Systemsteuerung > Verwaltung > Dienste
. -
Stoppe die angezeigten Dienste:
Windows-Prozessaktivierungsdienst
(Dienstname:WAS
)WWW-Publishingdienst
(Dienstname:W3SVC
)
Nun kannst Du deine Backups anlegen:
-
Lege Kopien Deiner Webseiten bzw. Web-Applikationen an. Oder stelle sicher, dass Du sie z.B. per Continuous Delivery unmittelbar wiederherstellen kannst. Standardmäßig befinden sich Deine Webseiten unter:
C:\inetpub\wwwroot
-
Lege eine Kopie der IIS-Konfigurationsdateien unter
C:\Windows\System32\inetsrv\Config
an.
-
Exportiere die TLS-Bindungen für Deine Webseiten aus der Windows-Registry. Sie befinden sich unter dem Schlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslSniBindingInfo
Deinstallation des IIS
Los geht’s:
-
Öffne
Server-Manager > Verwalten > Rollen und Features entfernen
. -
Klicke Dich durch den
Assistent zum Entfernen von Rollen und Features
bis Du zur SeiteServerrollen entfernen
gelangst. -
Deaktiviere dort die Rolle
Webserver (IIS)
.Kleiner Tipp: Mach einen Screenshot der ausgewählten Unterrollen, damit Du sie bei der Neuinstallation genau so wieder auswählen kannst.
-
Klicke Dich weiter durch den Assistenten und bestätige die Deinstallation mit
Entfernen
.
Der IIS wird nun deinstalliert, das dauert ein wenig. Sollten IIS-Erweiterungen installiert worden sein, dann müssen diese auch deinstalliert werden:
-
Öffne
Systemsteuerung > Programme und Features
. -
Wähle die jeweilige IIS-Erweiterung aus und klicke auf
Deinstallieren
.
Beispiele für IIS-Erweiterungen sind:
Und jetzt noch die Krümel wegwischen:
-
Lösche den Ordner
C:\inetpub
oder benenne ihn um. -
Lösche den Ordner
C:\Windows\System32\inetsrv
oder benenne ihn um.
Neuinstallation des IIS
Wir beginnen wieder ganz von vorne:
-
Öffne
Server-Manager > Verwalten > Rollen und Features hinzufügen
. -
Klicke Dich durch den
Assistent zum Hinzufügen von Rollen und Features
bis Du zur SeiteServerrollen auswählen
gelangst. -
Aktiviere dort die Rolle
Webserver (IIS)
und wähle wieder die gleichen Unterrollen wie zuvor aus. -
Klicke Dich weiter durch den Assistenten und bestätige die Installation mit
Installieren
.
Der IIS wird nun installiert, das dauert ein wenig. Installiere anschließend wieder all jene IIS-Erweiterungen, die Du zuvor deinstalliert hast.
Wiederherstellung der IIS-Konfiguration.
Kommen wir zum filigranen Teil der ganzen Operation:
-
Zunächst stelle sicher, dass Deine Webseiten bzw. Web-Applikationen unter exakt denselben Dateiordnern wiederzufinden sind wie zuvor auch.
-
Stoppe bzw. beende den Webserver im IIS-Manager.
-
Öffne nacheinander die Dateien:
C:\Windows\System32\inetsrv\Config\administration.config C:\Windows\System32\inetsrv\Config\applicationHost.config C:\Windows\System32\inetsrv\Config\redirection.config
in einem Texteditor Deiner Wahl und kopiere alle fehlenden Inhalte aus der jeweils korrespondierenden Backup-Datei herüber. Dies sollte behutsam und mit Bedacht geschehen, damit man die Konfiguration nicht durcheinanderbringt.
-
Starte den Webserver wieder im IIS-Manager.
Das war’s. Überprüfe nun sorgfältig alle Webseiten und Web-Applikationen auf Fehler in der Konfiguration. Im Idealfall sollte aber alles wieder wie zuvor laufen.
Auch die TLS-Bindungen sollten alle wieder an Ihrem Platz sein, der entsprechende Registry-Schlüssel wird bei der Neuinstallation von IIS nicht überschrieben. Sollte doch etwas schief gegangen sein, kannst Du den Registry-Export von vorhin importieren.
Fazit
Es muss nicht immer gleich eine neue Server-Instanz sein. Mit einer sauberen De- und Neuinstallation des IIS lässt sich so manches knifflige Problem beheben. Die hier beschriebene Vorgehensweise funktioniert übrigens auch für Windows Server 2016.