String.GetHashCode und IIS7 auf Windows Server 2008 x64
Ein interessantes "Feature" habe ich gefunden, als ich nach erfolgreicher Installation des Windows Server 2008 meine alten Webs wieder einrichten wollte. Und zwar konnte ich mich in keines meiner sharpcms.net Webs mehr einloggen, wenn ich diese über den IIS7 aufgerufen habe. Aufrufe der Webs über den in im VS2008 integrierten Webservers liefen problemlos.
Nach längerem debuggen und suchen im IS7, fand ich dann die Lösung:
Der Grund hierfür ist, das die Methode String.GetHashCode die Strings anders Kodiert wenn die Anwendung im IIS7 läuft, als wenn die Anwendung im IIS6.1, oder im integrierten Webservers des VS2008 läuft.
Wieso im IIS7 diese Stolperfalle eingebaut ist weis ich nicht. Die Lösung ist auf jeden Fall die, dass ich in den Erweiterten Einstellungen des aktuellen ApplicationPools das Feld "Enable 32-Bit Applications" auf "true" stellen muss und schon werden meine Passwörter wieder wie vorher kodiert.
Man könnte fast annehmen, dass es was mit der 64-Bit Version des Server zu tun hat, allerdings hatte ich das Problem nicht mit der 64-Bit Version von Windows XP. Möglicherweise hat der IIS unter XP, sowie der der integrierten Webservers der IDE standardmäßig 32-Bit Applications zugelassen...