As part of a business intelligence project, a web service was created on a 32-bit development machine that had to be installed on an x64 system. Installing the web service with IIS running in 64-bit mode and ASP.NET 64-bit worked but the web service threw an error when the .asmx was requested.

To get something like this to work, you have an option: force IIS6 on x64 to run in 32-bit mode. I am not saying that this is the way to go but only that it is possible. ;-)

The steps you have to perform:

  1. Make the worker process (w3wp.exe) run in 32-bit:
    cscript adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
    (adsutil is in c:\inetpub\adminscripts)
  2. Install ASP.NET on IIS with the 32-bit version of aspnet_regiis.exe from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727. Use the -i switch. You need to remove the 64-bit version before proceeding.

More info on aspnet_regiis.exe.