Print View

Error 800a0e7a "Provider_cannot_be_found" on IIS7 when using Enable32bitAppOnWin64

Issue

When using Enable32bitAppOnWin64 to run 32-bit applications or components on the x64 edition of Windows Server 2008 the following error may be seen in the IIS logs when creating an ODBC connection in a classic ASP:

YYYY-MM-DD HH:MM:SS 192.168.1.100 GET /page.asp |20|800a0e7a|Provider_cannot_be_found._It_may_not_be_properly_installed. 80 - 192.168.1.100 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.0;+WOW64;+SLCC1;+.NET+CLR+2.0.50727) 500 0 0 0

Example ASP Code:

<%@ EnableSessionState=False LANGUAGE = "VBScript" %>
<% option explicit %>
<%
    dim dataConn
    set dataConn = server.CreateObject("AdoDb.connection")
    dataConn.CursorLocation = 3
    dataConn.Open("Provider=OraOLEDB.Oracle;Data Source=DB;User Id=user;Password=password")
    dataConn.Close
    set dataConn = nothing
%>

Resolution

This is because the OLEDB Provider is a native x64 application and is registered with the native x64 registry (HKEY_LOCAL_MACHINE\SOFTWARE), where as the 32-bit IIS worker process (w3wp.exe *32) is using the WoW64 redirected registry (HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node).

To resolve the issue either install the 32-bit version of the OLEDB Provider, or disable Enable32bitAppOnWin64.

References

Windows Server 2003 SP1 enables WOW64 compatibility for 32-bit Web applications in IIS 6.0
http://support.microsoft.com/kb/895976

Registry Redirector
http://msdn.microsoft.com/en-us/library/aa384232.aspx

The Microsoft OLE DB Provider for Jet and the Microsoft Access ODBC driver are available in 32-bit versions only
http://support.microsoft.com/kb/957570

Products

Oracle Database 10g
Microsoft Windows Server 2008 x64
Microsoft Internet Information Services 7.0

Created: 2nd June 2009
Updated: 4th June 2009

Print View

© 2005-2024 Jamie Morrison