Running 32bit applications on a 64bit IIS7.5 platform
As I continue to attempt getting all old IIS6 sites running properly in IIS 7.5 (Windows Server 2003 R2 64bit), the next issue didn’t occur much past my last post. After creating my new Data Source (DSN), I opened up the migrated site and received the following error:
Microsoft OLE DB Provider for ODBC Drivers error ’80004005′
[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
/path/to/dsn.asp, line 6
Well that’s interesting. It’s mostly interesting because of what was actually on line 6 of this file:
Conn.Open “dsn=dsnName;uid=user;pwd=pass;”
Googling kept pointing me to it being a 32bit application running in 64bit mode. All the resolutions were mostly explaining that the application needs to be recompiled, yadda, yadda. Obviously this .asp file isn’t a “32bit file”, and well what am I supposed to tell my customers, that they need to only use 64bit .mdb files?
The solution was actually simple and had been something I’d read a few days before at iis.net about 32bit mode worker processes.
To configure 32-bit mode for the server
- Open a command prompt and run the following:
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.enable32BitAppOnWin64:true
Or you can just toggle this option in the Advanced Settings for the Application Pool for which the site is running. Either way works just fine.
I suppose on a shared web server for which I have no daily knowledge or control over what my customers are doing, it would be a best practice to turn 32bit mode for all sites by default and if an opportunity or need arises to switch back to native 64bit mode, then all the better.






Home
