admin 管理员组

文章数量: 887021

There are times when the coexistence of 64 and 32 bit code on the same machine can cause all sorts of seemingly strange issues.
One of them just occurred to me while trying to run the ASPx demos from Developer Express, my main provider of .Net components (the best supplier I’ve ever been able to find).
I was getting the following error:

The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local machine:

 

It may look otherwise, but this error is generally due to either of two thing:

  • you don’t have Office 2007 Jet drivers installed
  • or you are running a 32 bit application in a default x64 environment.

The first issue is easy to solve, just download the 2007 Office System Driver from Microsoft.

For the second one, the fix is easy enough:

  • For Windows 2008: Navigate to Server Manager > Roles > Web Server (IIS) > Internet Information Services (IIS) Manager, then look under your machine name > Application Pool.
  • For Windows 7: Navigate to Programs > Administrative Tools > Internet Information Services (IIS) Manager, then look under your machine name > Application Pool.

 

 

Under there you can call the DefaultAppPool’s advanced settings to change Enable 32-Bits Applications to True:

 

You may have to restart the service for it to take effect but it should work.

References

  • Scott Hanselman’s blog entry about undestanding 64 vs. 32 bitness in .Net.
  • MS 2007 Office System Driver

Updates

  • 03APR2010: Added instructions for Windows 7
  • 12FEB2009: Added reference to Scott’s article.
  • 28OCT2008: Original version

本文标签: Microsoft jet Windows OLEDB local