The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine (server)

It's probably a bitness issue, but it's not about the bitness in your Build properties.

The ACE driver is available in two versions: x86 and x64.

  1. You can only install one of them.
  2. If you install the x86 version, only x86 applications can use it. If you install the x64 version, only x64 applications can use it. (Yes, it's stupid.)

Now, whether your web application runs in x86 (32-bit) or x64 mode is not determined by your build settings but by the settings of your application pool: Select the application pool in IIS Manager, go to Properties/Advanced Settings and verify the setting of Enable 32-bit Applications. If it is set, your application runs in x86 mode, otherwise in x64 mode. Make sure it is the same mode as the one of which you installed the ACE driver.

(Of course, Steve's answer about using the right driver name also applies.)


There is no

Microsoft.ACE.OLEDB.4.0

There is

Microsoft.ACE.OLEDB.12.0 

or

Microsoft.JET.OLEDB.4.0

Of course the usual rules about 32bit and 64bit should be applied carefully

See this answer

So you need to install the Access Database Engine redistributable that you can download from here. But you should be careful to download the correct version (32bit or 64bit) depending on the Target Platform choosen to build your app. (AnyCPU, x64, x86).

Of course, if your server has Office installed then you have already the ACE installed, but it could be for a different platform and your application need to be compiled for the same. (Example, Office 32bit then ACE 32bit and you need to compile your app for x86)


probably it is X86 or X64 issue

you need to install it:

2007 Office System Driver: Data Connectivity Components.(http://www.microsoft.com/en-us/download/details.aspx?id=23734)

then make sure:

BUILD -> Configuration Manager -> Active Solution Platform -> x64 http://www.codeproject.com/Tips/417397/OLEDB-Provider-is-Not-Registered-on-the-Local-Mach