Windows 2008 / Windows 7 x64: The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local machine.

Tuesday, October 28, 2008

TechnologyThere 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:

Server Error

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

  • you don’t have Office 2007/2010 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 Access 2010 Database Engine from Microsoft (works with Access 2007 databases as well).

For the second one, the fix is also 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:

Advanced Settings

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

References

Updates

  • 10DEC2011: Updated driver link to use the Access 2010 engine.
  • 03APR2010: Added instructions for Windows 7
  • 12FEB2009: Added reference to Scott’s article.
  • 28OCT2008: Original version

Entry Filed under  :  .Net,Database,Programming,sysadmin,Web

94 Comments Add your own

  • 1. finklad  |  November 14th, 2008 at 6:02 am

    Bingo

    Thnka god someone knows what they’re talking about.

    Additionaly, you will have to set the folder permissions to allow iis_iusrs to connect to the databse from a client pc

  • 2. Abhishek Browne  |  November 22nd, 2008 at 3:18 pm

    I am using Vista 64 bit. Second soln. worked for me

  • 3. Paul  |  December 4th, 2008 at 7:55 pm

    Can you tell me how to navigate to those screens to set the Enable 32-Bits Applications to True on a windows Vista OS?

  • 4. Renaud  |  December 8th, 2008 at 3:02 pm

    @Paul: you should be able to access IIS configuration settings by right-clicking on My Computer and choosing Manage to open the Computer Management console.

    From there, IIS settings are accessible under the Services and Applications tree.

  • 5. leftix  |  January 7th, 2009 at 11:56 pm

    thx a lot, search is over now ;)

  • 6. mike25x  |  January 17th, 2009 at 5:53 am

    thanks… save a lot of time

  • 7. Doug  |  February 28th, 2009 at 12:27 am

    Thanks… this worked like a charm

  • 8. Cosmin  |  March 3rd, 2009 at 11:34 pm

    you are good, mate

  • 9. TheArtTrooper  |  March 9th, 2009 at 4:52 am

    One issue with this is that you lock IIS into running only 32-bit code.

  • 10. Renaud  |  March 9th, 2009 at 10:03 am

    @TheArtTrooper: true, but I don’t think you can have it both ways: if you need Jet, you’re stuck with 32 bits.

  • 11. Sean  |  March 17th, 2009 at 1:17 am

    2 questions: 1. I have Vista 64bit and found Services and Applications tree but still don’t understand where to enable 32 bit.

    1. Also, I need to run my 64 bit platform (Mplus 5.2 stat software) immediately after using this 32 bit application. Will I run into problems?

    And does anyone out there have issues with N2MPlus (the program that supposedly converts .xls (Excel) and .sav (SPSS) files to MPlus??? I wish this damn thing would work!

  • 12. Sean  |  March 17th, 2009 at 2:34 am

    The reason I could not see where to change the iis setting was because iis was not installed. I went to control panel>programs>turn win programs on or off> iis (check on)… but then I enabled “True” as stated above in the advanced settings, and reset the computer, and it STILL doesn’t work.

    Any suggestions? I saw something about resetting the jet database via run>cmd and then going to the .NET directory and putting in 3 commands for uninstalling, reinstalling, etc… but I don’t have any idea what this fix is for exactly.

  • 13. Will  |  May 18th, 2009 at 11:34 pm

    Thanks a lot for this tips. All is OK now.

  • 14. Giorgio  |  June 22nd, 2009 at 10:06 pm

    I was signing a $$$ budget to convert all of our web-Access applications to web-SqlServer applications… You saved my boss many $$$

    :-)

  • 15. Renaud  |  June 23rd, 2009 at 9:50 am

    @Giorgio: glad the tip saved you money!

  • 16. Anonymous  |  July 9th, 2009 at 12:20 pm

    thank you so much for help :) , i was really stuck and then find your blog

  • 17. Clytie  |  August 27th, 2009 at 3:32 pm

    Thank you very much ~O(∩_∩)O~

  • 18. Elaine  |  August 28th, 2009 at 11:43 pm

    I wish I had the same luck but I still got the same error after applying the second solution…

  • 19. Luis  |  September 1st, 2009 at 12:17 am

    Thanks, other sites have mentioned that you need to install access components, but I have been going crazy for days because they didn’t add that you had to fken make changes to the iis and change the application pool to “true” so that it will accept 32 bit applications. And on top of that SQL server Express had other issues. I was about to give up on it all. Many, many and many thanks

  • 20. James Byrd  |  November 2nd, 2009 at 9:46 pm

    Thanks for posting this info. It helped, but installing the Office 2007 components did not solve the Jet OLEDB problem for me. I see the Jet components in the SysWOW64 folder, and I see them listed in the registry, but the provider still doesn’t work.

    A trick I’ve learned for setting up connection strings is to create an empty file with a UDL extension and double-click on it. That brings up the Data Link dialog, which is like a wizard for building connection strings. Anyway, it lists all of the OLEDB providers on the first tab, and the Jet provider is still not in the list. After loading the office components, I see a few providers that were not listed before, but Jet is not one of them.

    Any thoughts?

  • 21. Rik Brown  |  December 5th, 2009 at 9:03 pm

    Brilliant – thanks a lot for that tip. Enabling 32-bit applications solved it for me.

  • 22. gbox  |  December 21st, 2009 at 12:36 pm

    it ‘s cool,thank you.

  • 23. dazza  |  January 13th, 2010 at 7:18 pm

    hi all is there a 64 bit version of the jet dll’s? I have a dependancy to keep the application pool in 64 bit mode, so the setting in my app pool has to remain false for 32 bit apps. but that breaks the jet dll. anyone know if it exists? thanks

  • 24. James Byrd  |  January 13th, 2010 at 9:43 pm

    dazza:

    According to Microsoft, Jet OLEDB has been obsolete since about 2005. They do not have a 64-bit version of the OLEDB drivers and have no plans to release them. Jet OLEDB is dead, and the customer be damned.

    Your only options are to switch to a different access method or switch databases. Yes, this was really bad news for me too.

    James

  • 25. Ashok  |  January 19th, 2010 at 4:56 pm

    Thanks a lot, it saved me a day.

  • 26. Roger  |  January 22nd, 2010 at 1:52 am

    Great tip. Thanks.

  • 27. Quintin  |  February 1st, 2010 at 6:37 pm

    Excellent, great help. Thanks! This worked for me, both the install and the x64 tip were required.

  • 28. Lav G  |  February 2nd, 2010 at 6:54 pm

    What if the application is not web hosted. I am using a console tool which uses Excel to import/export settings. It is not working on 64 bit Windows Server 2008 . Any thoughts ??

  • 29. Hendra  |  February 25th, 2010 at 5:34 pm

    I gotta say thanks to your solution. Thanks very much. The second solution works for me.

  • 30. Spag  |  March 4th, 2010 at 12:48 pm

    OMG I love you, if I was a girl I would have your babies.

  • 31. Sanjay  |  March 31st, 2010 at 12:05 am

    I am facing same problem in .NET Windows Service.

    How can i run Windows service as 32 bit application in a default x64 environment (Win 2008 server)?

  • 32. James Byrd  |  March 31st, 2010 at 2:05 am

    Sanjay:

    That is a similar, but different problem. You should be able to run your service as a 32-bit app by recompiling it with the “platform” set to “x86″ instead of “Any CPU”. Use the Configuration Manager to change these settings.

    James Byrd

  • 33. Tommy alfaro  |  May 21st, 2010 at 7:29 am

    Eternamente agradecido

  • 34. raju datla  |  June 15th, 2010 at 5:52 am

    It worked great!!! Thanks for posting.

  • 35. luke  |  July 20th, 2010 at 1:27 pm

    Thank you so much for posting this! What a help!

  • 36. myo win aung  |  July 20th, 2010 at 6:12 pm

    mpt

  • 37. zanskar03  |  December 10th, 2010 at 5:17 pm

    Merci beaucoup, trop top :-)

  • 38. cosma  |  December 24th, 2010 at 11:58 pm

    I did both steps and still the problem remains. In my code the problem is when i write: Dim login = Me.NameAndPassTableAdapter1.UsernamePasswordString(UsernameTextBox.Text, PasswordTextBox.Text) When i click ok it pops that: The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local machine. Do i need to restart my pc? What am I doing wrong?

  • 39. cosma  |  December 25th, 2010 at 12:06 am

    Its ok i solved it

  • 40. John Westberg  |  February 21st, 2011 at 6:08 am

    Thank’s a lot! Helped me big time! The headaches I’ve been going through the last couple of days trying to install SQL Express 2008 on a new Windows 7 installation – and then connecting it to asp… Your guide was my very last obstacle! So thanks!! :)

  • 41. Adam Bruss  |  February 23rd, 2011 at 11:59 pm

    Thank you very much. I have the latest Windows 7 64bit OS and was trying to run examples from the book Murach asp.net 3.5 C#.

  • 42. George  |  April 1st, 2011 at 7:24 pm

    Hi, i have windows server 2008 R2. And when i am running a programm i get the same error. Do you know how can i fix it?

  • 43. Anil  |  April 4th, 2011 at 10:21 pm

    Thanks Post helped me a lot and problem get resolved

  • 44. Jeff  |  April 12th, 2011 at 3:11 pm

    Hi, my machine cannot connect to MySQL database through MySQL ODBC connector 64bit once I Enable 32-Bits Applications to True ;(

    ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application

  • 45. Anonymous  |  April 14th, 2011 at 11:39 am

    you good It’s a working solution

  • 46. lovelyn  |  April 20th, 2011 at 7:41 pm

    i am using windows 7 but doesn’t know where to navigate those programs and administrative tools to get iis settings. pls. help. thanks!

  • 47. Srinivas  |  April 27th, 2011 at 6:44 pm

    Worked with option 2

  • 48. Manish Gupta  |  May 30th, 2011 at 6:59 pm

    Thanks for your writting, while doing this changes, it’s really worked on my server.

  • 49. C  |  May 31st, 2011 at 3:02 am

    Please note that the reference you intended to provide (“Scott Hanselman’s blog entry about undestanding 64 vs. 32 bitness in .Net.”) only links to your screenshot, not to the blog entry. ;-)

  • 50. Renaud  |  May 31st, 2011 at 8:50 am

    @ C Thanks, the link has been corrected.

  • 51. Sundeep  |  June 1st, 2011 at 3:07 pm

    @ C : Thanks a lot…

    You saved me in fixing the issue.really appreciated your work that you have done here.

    Sundeep G

  • 52. Laura  |  June 30th, 2011 at 9:34 am

    Be sure the the IIS feature is turned on…to do that go to control panel -> turn windows features on or off, then check the internet information services box

  • 53. Mark  |  July 4th, 2011 at 10:57 pm

    Cosma – I’m dtill having the same issue you had in post #38. You mentioned you solved it – how?

    Thanks in advance.

  • 54. mohit  |  July 14th, 2011 at 11:30 am

    I am using window 7 64 bit. . worked for me

  • 55. James  |  August 10th, 2011 at 10:48 pm

    I’m using Windows 2008, did the 2 easy steps and bingo!

    It’s great when you “stumble” upon someone who knows what they’re talking about in just a few clicks.

  • 56. Ryan O'Neill  |  September 16th, 2011 at 8:41 pm

    For those of you who want to keep your 64 bit processes but need access to Excel files you can use http://exceldatareader.codeplex.com/

    Apparently it works on 2008 and handles more file formats (XLSX).

    I’d rather do this than depend on the oledb drivers which may disappear at any point in an upgrade/rehost.

  • 57. Kaustubh  |  September 18th, 2011 at 4:22 pm

    haey paul i’m not able to find IIS in servicer and applications tree. plz help me

  • 58. Kaustubh  |  September 18th, 2011 at 4:24 pm

    @renaud plz help me to find out IIS. i’m using windows7 home premium 64bit.

  • 59. AlbertK  |  September 20th, 2011 at 10:59 pm

    Thanks a lot, i have done much research on www before at least i found your solution!

  • 60. Mowrya  |  October 3rd, 2011 at 6:08 pm

    Thanks brother — from India..

  • 61. Matt  |  October 19th, 2011 at 11:14 pm

    Thank You

  • 62. Sandeep  |  November 10th, 2011 at 7:46 pm

    Bingo…. Its done…..

    Now I want to know, is this available for each site separately ?

  • 63. Hasibul  |  November 21st, 2011 at 3:47 pm

    Gr8 post. It helps me very much.

  • 64. bhupendra  |  November 30th, 2011 at 2:17 pm

    thanx a lot it really helpful…:)

  • 65. coderealm  |  December 1st, 2011 at 11:28 am

    Hi dude, you understand this stuff more than microsoft bill gate, they have no idea of user’s problems to support them. You certainly know what you are talking about, well done, keep the open source knowledge going!!!

  • 66. Rick Wannall  |  December 9th, 2011 at 11:57 pm

    I will definitely be posting a link to your solution on my site. This was driving me nuts. I use Access all the time, but had never had to run it on my own server. When I got the error message you refer to, I started browsing around expecting it to be obvious. Lots of false leads and dead ends. Your steps for Windows Server 2008 were the answer. Thank you!!

  • 67. Renaud Bompuis  |  December 10th, 2011 at 12:36 pm

    @Rick Wannall: thanks. I’m always surprised as how much traffic this page still gets after 3 years… :-)

  • 68. Naren  |  December 16th, 2011 at 3:25 pm

    Wow… thanks man……

  • 69. Majida  |  December 28th, 2011 at 11:19 pm

    Hey guys just change the solution platform to x86….from configuration manager.

    Mine started working properly…!

  • 70. Chad  |  January 6th, 2012 at 1:07 am

    Thank you very much!!! Finally I found the solution.

  • 71. Probleme de OLEDB et JET &hellip  |  January 7th, 2012 at 12:35 am

    [...] http://blog.nkadesign.com/2008/windows-2008-the-microsoftjetoledb40-provider-is-not-registered-on-th… Posted in News – Tagged HowTo, jet, oledb, Tips, x64 SHARE THIS Twitter Facebook Delicious StumbleUpon E-mail « Teamviewer 7.0.12142 No Comments Yet [...]

  • 72. Jim Brook  |  January 25th, 2012 at 9:07 am

    Thank you for supplying this information and explaining it so well. I was just about to give up !

  • 73. Mitra  |  January 31st, 2012 at 5:20 pm

    thanks alot, it really helped! ;)

  • 74. PiTrens  |  April 1st, 2012 at 4:19 pm

    Muchisima Gracias Hermano

  • 75. tom  |  June 1st, 2012 at 9:44 pm

    Many thanks!!! You should be Number one in google search!

  • 76. Isaiah  |  June 4th, 2012 at 1:24 pm

    A great post, searched for the same information for more than two days!!! great work!

  • 77. Mohit  |  August 10th, 2012 at 2:03 pm

    Thanks a lot dude!!! You area genius….

  • 78. Saravanan G  |  August 16th, 2012 at 7:23 pm

    Thanks for your update its working

  • 79. REEMAN  |  August 29th, 2012 at 1:23 pm

    me have Win 7 and it work on 64bit the access On Office 2010 or 2007 that work On 32 bit not transfer data in VB.Net 2008 Forms

    instail with office 2007 32bit : “access 2007 engine 32bit” “access 2007 runtime 32bit “

    instail with office 2010 32bit : “access 2010 engine 32bit” “access 2010 runtime 32bit “

  • 80. Sandra Stowell  |  September 16th, 2012 at 1:13 am

    Navigate to Programs > Administrative Tools > Internet Information Services (IIS) Manager, then look under your machine name > Application Pool

    Does not appear on Windows 7 Home 64bit sp1: no Internet Information Services Manager on the list under Admin Tools.

  • 81. anagha  |  October 10th, 2012 at 10:42 pm

    hi…………i have the same error but i am not getting the option of Internet Information Services (IIS) Manager in my administrative tool…..plzzzzzzzz…help

  • 82. Fred Manceaux  |  November 30th, 2012 at 8:11 pm

    if your are getting HTTP Error 404.2, then you also need to migrate the website from Classic mode to Integrated Pipeline mode and activate the 32 bit .Net framework here’s more details http://www.codicode.com/art/the_microsoft_jet_oledb_4_0_prov.aspx

  • 83. ubendiran  |  December 5th, 2012 at 10:27 pm

    Thanks a lot……..

  • 84. Ndineka  |  December 18th, 2012 at 4:32 am

    well, any day now, my application will be up and running thanks to your help

  • 85. Krunal Rathod  |  January 28th, 2013 at 7:38 pm

    Hi, Reading .xls and .xlsx file was working my local system fine. But same code was showing error on Testing server which is 64 bit. Error: (The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local machine.)

    So i tried to change the code :

    From : Provider=Microsoft.Jet.OLEDB.4.0; Data Source=” file location”; Extended Properties=Excel 8.0;IMEX=1;HDR=yes

    To: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=file location;Extended Properties=”Excel 12.0;HDR=YES”;

    So used ACE.OLEDB.12.0 for Reading the .xls file.

    Now, it is working fine on local and testing server both.

  • 86. hi  |  February 26th, 2013 at 12:05 am

    thanks veryyyyyyyyyyyyyyyyyyyyyyyyyyyyyy much

  • 87. Mike Irving  |  March 5th, 2013 at 11:00 pm

    Ah, the 32-Bit switch.. very simple solution, working straight away, thank you.

  • 88. risa, jakarta-indonesia  |  March 6th, 2013 at 4:38 pm

    Thanks a lot.

  • 89. Armin Absalan  |  March 11th, 2013 at 11:41 pm

    THANKS SOOOOOOO MUCHHHHHHHHH ….

  • 90. Jagmohan Tyagi  |  May 1st, 2013 at 8:56 pm

    Thanks, You Know the exact solution.

  • 91. x64: Problem “The &hellip  |  May 9th, 2013 at 10:27 pm

    [...] Windows 2008 / Windows 7 x64: The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the lo… [...]

  • 92. x64平台上 Microsoft.Je&hellip  |  May 9th, 2013 at 10:27 pm

    [...] Windows 2008 / Windows 7 x64: The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the lo… [...]

  • 93. Helmut  |  June 7th, 2013 at 1:36 pm

    Thanks man! Solved my issue perfectly!

  • 94. Adebayo  |  June 22nd, 2013 at 10:51 pm

    After three days of battle with is problem. I use windows 2008 64bits .I come across this article. The problem is over.

Leave a Comment

(Will not be shown)
Notify me of follow-up comments via e-mail

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


about

Renaud This is a simple technical weblog where I dump thoughts and experiences from my computer-related world.
It is mostly focused on software development but I also have wider interests and dabble in architecture, business and system administration.
More About me…

My StackOverflow Profile
My (sporadically active) StackOVerflow account

Most Recent Posts

Categories

Links