Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm trying to get a new DotNetNuke site up and running on our 64-bit server, and I'm encountering the following error message:

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

I know from experience that you run into this when you target a 64-bit assembly on a 64-bit machine (there is no 64 bit OLE-DB provider currently). In that case, I simply target the x86 in Visual Studio and everything works fine.

But in this case, the site uses dynamic compilation, so there's no simple place to specify that I need to target x86. Any thoughts?

TIA.

like image 429
Chris B. Behrens Avatar asked Jul 29 '09 17:07

Chris B. Behrens


3 Answers

You could change your app pool that you're running that site under to run as a 32 bit application. In the IIS7 manager, its under "Advanced Settings" of your app pool, and then set "Enable 32-bit Applications" to true.

You could also do this with AppCmd from a console with the following:

appcmd apppool set /apppool.name:MyNukeSite /enable32BitAppOnWin64:true

In IIS6 - you could try something like this (2 lines here, run aspnet_regiis when finished changing the metabase value)...

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
aspnet_regiis.exe -i

See the following for more info:

  • http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5d306956-b2a2-4708-9bb9-72a395d474bb.mspx?mfr=true
  • http://blogs.msdn.com/irfanahm/archive/2008/12/15/how-to-use-a-32-bit-dll-in-asp-net-page-which-is-hosted-on-64-bit-iis.aspx
  • http://support.microsoft.com/kb/895976
like image 147
Scott Ivey Avatar answered Nov 04 '22 04:11

Scott Ivey


HI, Now the Microsoft has released the 2010 Office System Driver Beta: Data Connectivity Components which is supported both in 32 bit as well as 64 bit OS. So using this driver instead of the traditional Microsoft.Jet.OLEDB.4.0 driver will give us a 64 bit application running on a 64 bit server (that is what we really need).

Though this is in beta, it worked fine for me.

You can download this driver from 2010 Office System Driver Beta: Data Connectivity Components

Thnks

like image 21
neo Avatar answered Nov 04 '22 05:11

neo


You shouldn't try to target your application to 32-bit in which case you are losing the advantages of using 64-bit system. As aaa has pointed out, you can use the latest Access Database Engine 2010 to address this issue. Please refer to my blog post for complete solution.

Hope it helps.

like image 1
Daniel Cai Avatar answered Nov 04 '22 05:11

Daniel Cai