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


Scenario : you are trying to use this ACE OLEDB provider to programmatically import from an excel file in your ASP.Net 2.0 application running on Windows Server 2003 64 bit

What google / forums say: they tell you to change your target platform to x86 in VS 2008 and compile it, now unfortunately for a web app - you cannot do that. So we need to see some other means.

Some facts to know: IIS 6.0 does not have the capability to have different application pools running on different bits, whereas IIS 7.0 on Win 2008 Server brings in that capability. But here we are with IIS 6.0
ASP.Net 2.0 however supports both 32 bit and 64 bit and IIS 6.0 supports runing them in parallel.

This is what you need to do:
1. Enable 32bit on 64 bit App using the Adminutil script
2. Run Aspnet_regiis -i from the c:\windows\microsoft.net\framework folder - this represents 32 bit.
3. Changed ASP.Net v2 32 bit to Allowed in IIS 6 Web Service Extensions

After that, your 32 bit ASP.Net code will run like a breeze.

SharePoint Central Admin and other sites might give an error after this : "Directory Listing Denied, This Virtual Directory does not allow contents to be listed"


In Home Directory of IIS --- Configuration I have added DLL location "c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" then it started working

Comments

  1. Hi Karthick,

    Following the above steps, after enabling 32 bit we end up with this error.

    Cannot connect to configuration database.

    So again we enable 64 bit is working..
    Could you please giva a solution.

    TIA
    Shiva Charan

    ReplyDelete

Post a Comment

Popular posts from this blog

Using External Content Types with Stored Procedures with Input Parameters

HTTPS Site InfoPath Issue : You do not have permissions to access a web service that provides data required for this form to function correctly

Windows 7 Blue Screen because of ConnectiFy