ASP.NET/IIS Fix: The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

In my latest ASP.NET project, I refresh the sample data using an Excel spreadsheet from the client. After upgrading to Windows Server 2008 R2, I suddenly discovered this error:

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

The error message is totally bogus! The problem is that I’m running IIS on a 64-bit machine and the ol’ OLEDB thingy just isn’t up with the times.

To fix it, go into the IIS Manager and find out which Application Pool the site is using. In my case, it’s called “ASP.NET V2.0”.  Next, go to the Application Pools node, and investigate the aforementioned app pool’s advanced settings.

The property Enable 32-Bit Applications needs to be set to True.

I’m sure I’ve run across this before but hadn’t retained the fix. Now it’s where I can find it.

Ken

25 Comments

  • Ken,
    I have not tried this myself but you should be able to use the "Microsoft Access Database Engine 2010 Redistributable" 64 bit version.

    http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

    using
    Provider=Microsoft.ACE.OLEDB.12.0


    Raj Kaimal

  • I have received this error on a Windows App. I am running a 64-bit OS. any ideas for a solution here?

    When I took my app to a 32-bit OS, everything worked just as expected

    Thanks in advance

  • I got this error message while running a asp.net page via IIS on (windows 7). I went into the Application Pool, clicked on my pool (in my case Test) and right clicked. I selected 'Set Application Pool Defaults'.

    Change the 'Enable 32 bit Application' to True.

    Hope it works.

  • The change on setting 64 to 32 bit in IIS worked for me.

    FYI

  • If your web server created an application pool for your site, change the "Enable 32-Bit Applications" setting in that pool specifically as well as the default pool. That's what ultimately worked for me.

  • Ken,

    Thanks for the solution. It worked perfectly.

  • Wow. You just saved me a lot of wasted time... Thanks!

  • thanks for sharing.

  • Great tip! I would never have found that on my own!

  • Thanks for the info, you saved us a lot of hassle!

  • It did not work for me. I'm running asp.net 4.0, Managed pipeline = Classic. Any other suggestions?

  • OH, also running IIS 7.0.

    When I do try this fix, the whole site returns the error: "The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."

  • you can't change this on an SBS2011 server, however. as soon as you change a .net 2.0 application pool to support 32 bit execution, all of the OWA (outlook web access) services fail so webmail and activesync stop functioning.

    i have a separate website with a separate application pool, but it makes no difference. i'm now going to investigate using the Microsoft Access Database Engine 2010 Redistributable which comes in a 64 bit release.

  • Thanks a lot, it works, I was running MsChart Sample on win7 x64, and got the error. Bogus indeed.

  • Very very thanks for your golden information, I fixed this error, Now its working properly.

  • Thanx for the information, fixed the error.
    Appreciate it.
    Config was IIS 6, Windows 7, Visual Studio 8.

  • Asp files are not working while change to 32 bit...

  • Open IIS Manager --> Aplication Pools --> choose your Application Pools Name --> Advanced Setting --> Process Orphaning change the value from false to true. Refresh your application page. It work for me.

  • I got the similer error ,we have upgraded server from windows 2003 to 2008 R2 ,we have built applicaiton sin 2.0 frame work windows services , which are failed given error The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

    Fix ::

    1) download http://www.microsoft.com/en-us/download/details.aspx?id=13255
    "AccessDatabaseEngine_x64.exe"
    2)Run the above as administrator
    3) change Provider=Microsoft.Jet.OLEDB.4.0;
    to
    Provider=Microsoft.ACE.OLEDB.12.0;
    UPDATE: Microsoft has released a service pack for the

  • If You were a girl I'll kiss You !!

    Easy and really good !

    Thanks.

  • Why the world ever let itself get roped into a convoluted, tortured mess like Windoews is beyond me.

  • Thanks, thanks, thanks X 10^100000

    I was saved after a lot of useless googleings

  • This worked for me; thanks so much Sami!

    "I got this error message while running a asp.net page via IIS on (windows 7). I went into the Application Pool, clicked on my pool (in my case Test) and right clicked. I selected 'Set Application Pool Defaults'.

    Change the 'Enable 32 bit Application' to True.

    Hope it works. "

  • Hey Thanks. It look simple, but great solution for me. Because I have been trying to resolve this issue since last 3 hours. Your solution worked for me.

    Once again thanks for posting it....

  • Great suggestion!
    On my machine with VS2010 that fix for ASP.NET v4.0Xxx had no effect, but "Enable 32..."=True for DefaultAppPool did a trick.

Comments have been disabled for this content.