Der IIS (insbesondere der IIS6) kann sich unter Umständen recht zickig anstellen wenn man eine ASP.NET (oder noch schlimmer: ASP.NET MVC) Anwendung zum Laufen bekommen möchte. Hier ein paar zusammengestellte Tipps für Windows Server 2003 (IIS6) und spätere Versionen. (IIS7 / IIS7.5)
Die Tipps gelten für Windows Server 2003 bzw. höhere Versionen - auch wenn es da deutlich einfacher geworden ist.
- Ist die richtige .NET Version auf dem Server installiert?
- Nachprüfen kann man das entweder über Programme/Software in der Systemsteuerung oder man schaut mal in den GAC (C:\Windows\assembly) ob dort .NET DLLs mit der nötigen Versionsnummer da sind.
- Wenn es nicht installiert ist: Einfach die neuste Version installieren.
- Ist auf dem Windows Server überhaupt der IIS installiert?
- Nachprüfen kann man das in der Systemsteuerung unter Software/Programme. Der IIS ist unter den Windows Komponenten zu finden.
- Wenn er nicht installiert ist: Den nächsten Punkt noch beachten.
- Ist im IIS die .NET Unterstützung mit installiert? Im IIS 7 gibt es so genannte "Anwendungsentwicklungsfeatures” - dort ASP.NET mit anklicken. Im IIS6 gibt es glaub ich was ähnliches.
- Jetzt muss man rausbekommen unter welcher Version die Anwendung laufen lassen möchte:
- Im IIS6 ist das etwas magisch. Auf 32bit Maschinen gibt es unter Eigenschaften einer Webseite einen ASP.NET Tab - auf einer 64bit Maschine muss man erst mal irgendwelche RegistryKeys umändern. Allerdings läuft bei mir eine ASP.NET MVC Anwendung im IIS6 auch ohne das ich diesen Reiter hab. Wer ihn sieht, sollte mal nachschauen ob dort evtl. ASP.NET 1.1 ausgewählt ist.
- Im IIS7 (und IIS7.5) wird dies über die Anwendungspools geregelt
- Ganz wichtig: asp_regiis.exe
- Diese Datei registriert macht ein paar wichtige Änderungen am IIS. Bis .NET 4.0 muss man diese Datei ausführen:
- C:\Windows\Microsoft.NET\Framework\v2.0.50727\asp_regiis.exe -i
- Ab .NET 4.0 gibt es eine neue Variante unter der Frameworkversion v4...
- Wenn man eine ASP.NET MVC Anwendung unter IIS6 zum Laufen bringen soll: Ein Wildcard Mapping auf die aspnet_isapi.dll & deaktivieren von "Verify that the file exists” unter den Konfigurationsoptionen im Basisverzeichnis Tab oder diese Tipps befolgen:
Wenn diese Punkte schon mal erfüllt sind, kann es z.B. noch ein Problem mit Schreibrechten geben bzw. wenn die Anwendung unter einem speziellen Account läuft zu Problemen kommen.
- Hat der User unter dem die Anwendung läuft Schreib- & Leserechte auf den Ordner. Siehe auch hier.
- Ist der User unter dem die Anwendung läuft auch Mitglied der Windows Gruppe IIS_WPG (IIS6) bzw. IIS_IUSRS
Wenn es nicht eine ganz exotische Anwendung ist, sollte diese spätestens nun auch laufen. Ansonsten lohnt ein Blick in den Windowslog. Wenn ich doch etwas vergessen habe, dann werde ich dies hier weiterführen :)