Thomas Bandt

Über mich | Kontakt | Archiv

Windows x64, IIS7 und die Sache mit den Handlern in der Web.config

Wer beispielsweise Url-Rewriting einsetzt und eigene Dateiendungen verwendet und eine Website schonmal auf einen Windows Server 2008 in der 64-Bit-Variante deployed hat, wird es kennen: um auf dem Server korrekt ausgeführt zu werden, müssen die Handler im <system.webServer />-Abschnitt der Web.config auf den 64-Bit-Ordner der .NET-Framework-Installation verweisen. Das geht ganz leicht, in dem man beispielsweise die Zeile

   1:  <add name="Feed" path="*.feed" verb="*" 
   2:       modules="IsapiModule"
   3:       scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" 
   4:       resourceType="Unspecified" />

in

   1:  <add name="Feed" path="*.feed" verb="*" 
   2:       modules="IsapiModule"
   3:       scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" 
   4:       resourceType="Unspecified" />

ändert.

Aber was tun, wenn man diese Website im Team entwickelt und nicht alle Team-Mitglieder ein 64-Bit-System nutzen? Dann steht man nämlich vor dem Problem, dass jeweils eine dieser Varianten bei einem der Entwickler lokal nicht funktioniert.

Die Lösung:

Man lässt den Application-Pool lokal im "32-Bit-Modus" laufen, d.h. nutzt die erste Variante. Der lässt sich (übrigens auch für Produktivsysteme, was aber nur selten sinnvoll ist) im IIS-Manager einstellen. Dafür einfach einen Rechtsklick auf den Application-Pool machen, Erweiterte Einstellungen wählen und dann "32-Bit-Anwendungen aktivieren" auf true setzen. Und schon wird beim nächsten Aufruf auch auf dem 64-Bit-Rechner der der erste oben stehende Pfad aufgerufen.

Eine kleine Einstellung mit großer Wirkung - so kann nämlich weiter eine einheitliche Web.config-Datei für alle verwendet und auch im Quellcode-Repository gehalten werden.



« Zurück  |  Weiter »