HTTP-Fehler 500.22 – Internal Server Error – Oder: der integrierte Pipelinemodus im IIS7 08 Mai 2009

Also, mal vorweg: Ich bin begeistert von meinem Server. Wenn man bereits Erfahrungen mit Vista hat, ist die Einarbeitung in Windows 2008 nach einer Stunde erledigt. Ich hatte nur erst einmal länger nach dem IIS gesucht, denn der ist nach einer frischen Installation nicht auffindbar – es muss erst die Serverrolle “Webserver” hinzugefügt werden, danach klappt’s auch mit dem IIS! Aber zum Fehler:

Ich wollte “mal eben” mein Blog von meinem alten Win2k3-Server herüberholen. Also, komplettes Verzeichnis kopiert (Nutze ja zur Zeit in Blogengine.NET nur den XML-Store), im IIS eingerichtet (Geht wirklich fix), DNS-Server mit neuer IP versorgt und aufgerufen (vom Büro aus). Ich wurde dann hiermit begrüßt:

500 - Interner Serverfehler IIS7

Direkt aufgerufen auf dem Server sah das ganze dann schon anders aus:

IIS7 Error 500.22

Und genau hier fangen schon die Vorteile vom IIS7 an: Es werden verschiedene Lösungsansätze vorgeschlagen! Und direkt der erste hat geholfen:

Migrieren Sie die Konfiguration in dem Abschnitt "system.webServer/modules". Sie können dies manuell oder mit dem Befehl "AppCmd" an der Befehlszeile durchführen. Beispiel: %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/". Wenn Sie zum Migrieren der Anwendung den Befehl "AppCmd" verwenden, funktioniert diese sowohl im integrierten Modus als auch im klassischen Modus sowie mit früheren Versionen von IIS.

Sollte dieser Fehler in einer anderen als der Standardwebsite auftreten, muss anstatt “Default Web Seite/” natürlich der Name der entsprechenden Website eingetippt werden. Die “Migration” sorgt u.a. dafür, dass in meinem Fall die httpHandlers und httpModules Einstellungen in die Untergruppe <system.webServer> kopiert werden.

Und direkt nach dem Befehl (Auszuführen in der DOS-Box) funktionierte wieder alles! Klasse!

Info: Ich hätte auch in den “IIS6-Kompatibilitätsmodus” schalten können. Mir würden dann allerdings einige Vorteile des IIS7 entgehen, denn bei der neuen “integrierten Pipeline” ist ASP.NET nun endlich in den IIS fest eingebunden, was u.a. für eine bessere Performance und Stabilität sorgt.