I have an IIS6 server setup running Windows Server 2003 x64, R2, SP2. Everything is working great I can host websites in IIS, and it works exactly how I want.
The catch, I've got an ASP.NET WebApp that needs to use a 32-bit only Odbc driver. I've setup the ASP.NET WebApp to compile for x86 only, but it still doesn't work.
I've also tried this command on the server to enable x86 worker processes, but it also doesn't work:
cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 true
from here
Still the application fails to load the Odbc Driver, if I run the exact same code on an x86 dev machine it works as expected, it also works on my x86 IIS7; I'd like to avoid building another production web server for this one WebApp, so any help is appreciated.
In addition to enabling 32 bit apps on win 64, you need to enable 32 bit asp.net IIS integration. In Windows\Microsoft.NET\Framework\v2.0.50727 (not the Framework64 directory) run:
Besides what @dmo has answered above, I had to allow Application Pool to handle x86 apps.
To do this open IIS Manager and then choose Application Pool which you expect it to handle x86 and open Advanced Settings.
Now find property Enable 32-bit Applications and set to True.
Do you have other dll's that could be accessing the ODBC driver in "Any" instead of 32-bit mode? That would likely be your problem, we had a similar issue and resolved it by switching the assemblies that called the driver to be 32-bit only ... but left the web app as "Any" (64-bit).