Synchronizing from 32–bit to 64–bit
Applies To: Windows 7, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP
No additional Web Deploy arguments are required to perform a sync operation from a 32–bit computer to a 64–bit computer. When you synchronize a whole Web server from 32–bit to 64–bit, Web Deploy sets all synchronized applications to run in 32–bit mode by using the enable32BitAppOnWin64 bitness attribute, which helps to ensure compatibility. The CrossPlatformRule rule, which is enabled by default, implements this functionality when you move data from a 32–bit source to a 64–bit destination. You should never disable this rule when you perfrom a 32–bit to 64–bit sync operation.
Script Maps and ASP.NET
During a 32–bit to 64–bit synchronization, the bitness for every script map (including ASP.NET script maps) is written to the preCondition attribute for the script map in the ApplicationHost.config file on the destination. If a script map or ASP.NET precondition setting already exists on the destination server or Web site, Web Deploy does not change the bitness precondition on the destination. For more information on preconditions, see the online resource IIS 7.0 Modules Overview.
Machine.config and root Web.config files
The 32–bit ASP.NET configuration files named Machine.config and root Web.config will be synchronized to the 32–bit framework folder on the destination. The CrossPlatformRule rule will prevent any changes from being made to any 64–bit configuration files such as Web.config or Machine.config that already exist on the destination. Because the 64–bit configuration was not present on the source, no change will be made in the 64–bit configuration on the destination.
You must not disable the CrossPlatformRule rule when you perform a 32–bit to 64–bit synchronization. If the CrossPlatformRule rule is disabled, empty configuration files can be created on the destination that will leave the Web server in an unusable state.
Both the webServer and webServer60 providers use the rootWebConfig32, machineConfig32, rootWebConfig64, and machineConfig64 providers to gather configuration information from the Machine.config and Web.config files in the .NET Framework directory. Only the 32–bit providers are used on 32–bit computers. The 64–bit versions of these providers will not run on 32–bit computers. On a 64–bit server, all four providers can be used because both 32–bit and 64–bit processes and application pools can exist on a 64–bit computer. On a 64–bit server, these providers collect and store configuration information from all these locations.
Application pools will automatically be set to run in 32–bit worker processes and will use the enable32BitAppOnWin64 setting. Web Deploy does not change the bitness of the destination application pool to which the site is assigned. New application pools will be set to 32–bit mode. Notice that a 64–bit process cannot run in an application pool that is running a 32–bit process.
If you synchronize a single Web site and the application pool for the Web site exists on the destination, the Web site will be moved, but the application pool will not. By default, if the application pool for the Web site does not exist on the destination, Web Deploy will not move the Web site because of its dependency on the application pool. For more information, see Viewing Dependencies.
If your source computer has custom 32–bit code that has values in the registry, the following scenarios may be relevant.
You want to synchronize a custom 32–bit application from a 32–bit operating system to a computer with a 64–bit operating system, and run the application as 32–bit on the destination computer.
You want to synchronize a custom 32–bit application from a 64–bit operating system to another 64–bit operating system.
In these cases, you may have to synchronize the application's 32–bit registry keys to the WOW6432NODE key on the 64–bit destination computer by using the regValue provider. For more information, see Web Deploy regValue Provider.