I recently installed a Windows 2003 x64 server. I had to use this machine for running one of our web services we developed.
This webservice was initiated by a custom developed Windows Schedule service, to initiate an import of files.
After installing and configuring IIS6, I could browse the webservices.svc file but whenever the Schedule Service tried to initiate the webservice to do the import of files I received the following error in my IIS logs:
127.0.0.1 POST /WebImportService.svc – 80 – 127.0.0.1 – 500 0 0
A 500 0 0 error indicates application failure. The schedule service could not initiate an import. After some troubleshooting I came to realize that the WebImportService was a 32 bits application and was running with the x64 DLL (i.e. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll).
Apparently this is no problem on IIS7 (), but it is on IIS6.
The following action resolved my problem:
First I had to enable the possibility to run x86 WebApps on my X64 machine. For this open a command prompt and navigate to C:\inetpub\adminscripts. Execute the following command:
cscript adsutil.vbs SET W3SVC/AppPools/Enable32BitAppOnWin64 TRUE
note:
you can use cscript adsutil.vbs GET W3SVC/AppPools/Enable32BitAppOnWin64 to see if it is already enabled on your machine
After that register .Net v4.0. Navigate to the folder C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 (not the Frameworkx64 folder) and execute the command:
aspnet_regiis –i
In IIS under “web service extensions” you can now enable ASP.NET v4 (32 bit). Just right click it and select Allow

Last thing to do is change your webapplication to use the 32 bits Framework DLL’s instead of the x64 bits.
You can do this by executing the next command from within your Framework folder (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 ):
aspnet_regiis -s W3SVC/1/Root/<Web Identifier>
The Web Identifier can be found inside IIS manager or by executing the command: aspnet_regiis –lk
