I've got a few COM+ applications that all register on the web server - a particular class within one application's DLL cannot be instantiated. The others work fine - even other applications that are installed before and after this particular one work fine.
The same DLL has been installed on other servers and work fine - and all classes can be instantiated without problem. From a scrap of vbs which calls the object, I get a "error loading DLL: 'createobject'" and from the web app (ASP) I get a page error "create object failed" "an error occurred while creating object 'objectname'"
It is not working in VBS and it is not working in ASP. Two components of the DLL ARE working, but 5 out of 7 are not. These 5 components instantiate one of the two components that DO work.
eg.
component prodversion returns the DLL version - this works
component dbobject runs sql server stored procedures - this works
component clients uses dbobject to verify user database permissions (by using dbobject) - but doesn't work
it does this like so:
Const m_modname As String = "myapp.clients"
Private m_dbobject As dbobject
Private Sub Class_Initialize()
Set m_dbobject = CreateObject("myapp.clients")
End Sub
I think it fails at the CreateObject.
The code is identical for other apps - the same classes, the same code - just the application name (myapp) is changed.
It also works on other servers.
So to round up...
The same code compiled as a DLL for COM+, works on servers A & C but not server B. Other applications with the same code work on A B & C. Other applications installed on B before and after the problem application work fine.
I have no idea how to solve this - if I had more points to allocate to an answer I would.