Category : .Net | Author : Chtiwi Malek | First posted : 3/7/2012 | Updated : 11/27/2012
Tags : windows, isapi, x64, microsoft, iis
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

Today I started migrating one of my clients website to a new 64 bits server (Windows server 2008 / IIS7), the website was previously hosted on a 32 bits server (Windows server 2003 / IIS6).

Everything went well, except that a page doing some xlsx “xcell files” parsing is returning an error:
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

I have already installed the Office 2007/2010 Jet drivers, but if you are having the same problem, the first thing to do is to install it:
http://www.microsoft.com/download/en/details.aspx?id=13255

If you’re still getting the same error like me, then you’ll have to allow the IIS application pool to run 32 bit applications :

Navigate to Server Manager > Roles > Web Server (IIS) > Internet Information Services (IIS) Manager, then right-click on your website’s Application Pool and click “Advanced Settings”:



Set the Enable  32-Bit Application to TRUE.
This should enable IIS to run 32-Bit Applications in a default x64 environment, but I was getting another error:

HTTP Error 404.2 - Not Found
The page you are requesting cannot be served because of the ISAPI and CGI Restriction list settings on the Web server.


After testing and digging a little deeper, I found two solutions :

1/ Migrate the website from Classic mode to Integrated Pipeline mode, and IIS will be able to run 32-Bit Applications.

If your website has httpmodules and httphandlers the manual migration process is not easy, so I advise you to update your Visual studio, recompile your website and publish it:

Microsoft Visual Studio 2008 Shell (Integrated) Redistributable Package:
http://www.microsoft.com/download/en/details.aspx?id=16480
Microsoft Visual Studio 2010 Shell (Integrated) Redistributable Package:
http://www.microsoft.com/download/en/details.aspx?id=115

2/ Activate the 32 bit .Net framework in the ISAPI and CGI restrictions list :

- Navigate to Server Manager > Roles > Web Server (IIS) > Internet Information Services (IIS) Manager, click on the server name, open the "ISAPI and CGI Restrictions" window and allow access to the 32 bit .Net framework :



that's all, everything should be running just fine.

+ Alternative solution, Migrate to a 64-bit compatible OLEDB Jet driver version :
http://www.codicode.com/art/64_bit_version_of_microsoft_jet.aspx

About the author :
Malek Chtiwi is the man behind Codicode.com
34 years old full stack developer.
Loves technology; but also likes design, photography and composing music.
Comments & Opinions :
Thanks
I had the error of connecting Access database with .NET application in my windows 64-bits PC and could solve it by following the grate advice available here.

Thanks a lot.
- by Jayanitha on 11/2/2012
Leave a Comment:
Name :
Email : * will not be shown
Title :
Comment :