Coding Microsoft

Running 32-Bit COM components in x64 IIS Server

Recently we upgraded one Web Application for a client from a server running Windows Server 2003 to Windows Server 2008 R2, 32GB RAM. Because the new server was x64 we had to move the web application running in the server from 32-bit to 64-bit. The ASP.NET, .NET apps moved fine as expected, but few COM Components that were being used didn’t run on the new x64 environment. These were third party COM components which were only available as 32-bit binaries and no new versions from the original vendor(s). After few failed attempts to wrap the component with 64-bit wrappers, we found an easier solution.

COM components - advanced settings

COM components – advanced settings

The solution was to use the Advanced Settings in Application Pools in IIS 7.5, configure a setting there called “Enable 32-Bit Applications” to True. This causes the App Pool to run in WOW64 as a 32-bit process. So the application inside the pool including the COM Component executes in 32-bit mode. The downside will be the memory that is available for the process, this was not a problem in the current web app which was light-load to service.