Retrieving COM class Factory failed: 8007007f

J

jimmyfo

Hi, I recently wrote an ASP.Net web application in VS2005 and published
(using VS2005 Publish feature) it to a relatively clean machine with
ASP.Net 2.0 and MDAC 2.8 installed on it. However, when I try to create
my SQL connection in the code-behind, I get the following error. I
tried to register the DLL using regsvr32 but that errored out saying,
"dllregisterserver entry point was not found". Any ideas?

Retrieving the COM class factory for component with CLSID
{2206CDB2-19C1-11D1-89E0-00C04FD7A829} failed due to the following
error: 8007007f.
Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException:
Retrieving the COM class factory for component with CLSID
{2206CDB2-19C1-11D1-89E0-00C04FD7A829} failed due to the following
error: 8007007f.

Source Error:

An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of
the exception can be identified using the exception stack trace below.


Stack Trace:


[COMException (0x8007007f): Retrieving the COM class factory for
component with CLSID {2206CDB2-19C1-11D1-89E0-00C04FD7A829} failed due
to the following error: 8007007f.]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean
publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle&
ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean
fillCache) +103
System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean
skipVisibilityChecks, Boolean fillCache) +261
System.RuntimeType.CreateInstanceImpl(Boolean publicOnly) +14
System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr,
Binder binder, Object[] args, CultureInfo culture, Object[]
activationAttributes) +1036
System.Activator.CreateInstance(Type type, BindingFlags bindingAttr,
Binder binder, Object[] args, CultureInfo culture, Object[]
activationAttributes) +114
System.Data.OleDb.OleDbConnectionInternal.CreateInstanceDataLinks()
+96
System.Data.OleDb.OleDbConnectionInternal.GetObjectPool() +130

[InvalidOperationException: The .Net Framework Data Providers require
Microsoft Data Access Components(MDAC). Please install Microsoft Data
Access Components(MDAC) version 2.6 or later.]
System.Data.OleDb.OleDbConnectionInternal.GetObjectPool() +166

System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString
constr, OleDbConnection connection) +51

System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions
options, Object poolGroupProviderInfo, DbConnectionPool pool,
DbConnection owningObject) +53

System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection
owningConnection, DbConnectionPoolGroup poolGroup) +27

System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection
owningConnection) +47

System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection
outerConnection, DbConnectionFactory connectionFactory) +105
System.Data.OleDb.OleDbConnection.Open() +37
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset,
DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String
srcTable, IDbCommand command, CommandBehavior behavior) +121
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32
startRecord, Int32 maxRecords, String srcTable, IDbCommand command,
CommandBehavior behavior) +137
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) +86
search.Page_Load(Object sender, EventArgs e) +1404
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
+1061
 
R

Rob MacFadyen

Jimmy,

I've seen the 8007007f error once before in relation to MDAC, though it was
not .NET related (classic ASP).

In that case the problem was an incorrect version of OLEDB32.DLL
(mismatched). The solution was to regsvr32 the correct oledb32.dll.

You should download and run the MDAC component checker. It will look at all
the version of all the mdac files and see what's what.

You could also try a manual search for OLEDB32.DLL and see which version are
installed. You'll also have to check the registry to see which one is
actually in use (mdac component checker may tell you).

Regards,

Rob MacFadyen
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top