Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine
I’ve come across this error a couple of times in the past few weeks when migrating old ASP.NET websites to new web servers so I’m popping it into the blog as an aide-memoire for myself and in case it’s useful for others.
The error message below (
Server Error in … Application,
The Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine) pops up when trying to open a page which uses the database (in this case a Microsoft Access DB).
The fix is to enable 32-bit applications for the relevant Application Pool using Internet Information Services Manager. The Jet drivers are not 64-bit, and by default IIS8 (Server 2012R2) has 32-bit apps disabled.
- Open IIS Manager
- Navigate to the Application Pools Node underneath the web server.
- Select the App Pool in question. If in doubt look at the “Applications” column, if only one has any applications in it then that’s the one you want :)
- On the Actions menu on the right-hand side click on “Advanced Settings”
- In the “Advanced Settings” dialog set the value of “Enable 32-Bit Applications” to True and click OK.