When migrating an application from Windows 2003 to Windows 2008, the major concerns are around migrating from IIS 6 to IIS 7.
For Classic ASP applications, the settings can be taken from Moving asp Web site from IIS 6 to IIS 7.5 on Windows 2008 R2:
- Configure the App Pool ".Net Framework version" to use "No Managed Code"
- Set the "Managed pipeline mode" to "Classic"
- Set "Enable 32 bit Applications" to true, in the "Advanced Settings"
- Set the "Identity" to "Network Service", in the "Advanced Settings"
In case of errors, to help debugging you can temporarily enable:
- In “Debugging Properties”, set "Send Errors to Browser" to True
- In Internet Explorer, in “Internet Options” turn off “Show friendly HTTP error messages”
For .NET applications, the considerations are:
- Maintain the Application Pool in the old Classic Mode, or convert it to the new Integrated Mode
The process is impacted above all if HttpModules and HttpHandlers are used, and the process is described in Moving an ASP.NET Application from IIS 6.0 to IIS 7.0.
In addition, the automated tool "APPCMD.EXE migrate config " can bed used. It is described in ASP.NET Integration with IIS 7.
- If you are moving from an original 32 bit to 64 bit environments:
- if the application is compiled for 32 bit mode, it is enough to set "Enable 32-Bit Applications" property to true in the Application Pool settings
- If it is compiled for "Any CPU" you may want to try to run in in 64 bit mode. If it has not dependencies on 32 bit resources (i.e. assemblies deployed in the 32 bit GAC), it should run without any problem
- If it is compiled for "Any CPU" and you need to run it in 32 bit mode on a 64 bit system, you can try to force its "bit-ness" using the CorFlags utility. The only risk is that this solution changes the assembly header, so it is not applicable with signed assemblies
- If it is compiled for "Any CPU" and you need to run it in 32 bit mode on a 64 bit system and the assembly is digitally signed, you need to recompile the sources. Here you have two latest choices:
- recompile forcing 32 bit mode
- or better remove the dependency on the 32 bit resource so that the application can be run in 64 bit