Freigeben über


COM+ partitions : Retrieving the COM class factory for component with CLSID {GUID} failed due to the following error: 80040154.

Environment

Windows server 2003 Enterprise Edition SP2
Two node windows cluster.

Problem

We browse a web service and then we hit on a method that takes us to a form. After passing parameters on the form and clicking on the submit button we get the error :

Retrieving the COM class factory for component with CLSID {GUID} failed due to the following error: 80040154.

The web service is running under a local user account that is a part of local administrators group. The apppool is also running under the same user.
Created Test.vbs to do a CoCreateInstance on the COM+ component and that failed too with the error : Activex component cannot create the object '<progid>'.
Deleted the component and added it back. Still fails.
Deleted the component again. Unregistered it and re-registered it using regsvr32.exe but we did not put it back in COM+.
Now the test.vbs worked. Web page worked too.
The COM+ package is under a partition named "QA partition" where we have configured some users under Roles but we are not using the roles as "Enable Enforce Access Checks". Even enabling that has no effect, still fails. Tried other COM+ components within the same partition and they are not working.

Resolution

The server had the problem with one particular COM+ application. Other COM+ applications within the same partition worked when the components are invoked from ASP.
We checked the web.config file for IIS virtual directory.  Found that Impersonation was turned on with SetImpersonate=True, username= <domain user>. All the web requests for the COM+ application was being made under this impersonated user. We created the mapping for this user under COM+ partition --> Roles. This resolved the issue.