Connect to remote COM+ object

S

sjoshi23

All

I'm trying to get this to work but I'm having problems. I have added
reference to a COM+ dll to get the class (type) I need. Now this is
hosted on a remote server (SP3DSMP1) as a COM+ component.

So I tried this from a client...

Type comType = Type.GetTypeFromProgID("NTNameService.UpdateNumber",
'SP3DSMP1_Name', true);
UpdateNumberClass oUp = Activator.CreateInstance(comType);

But this fails with the error:

Retrieving the COM class factory for remote component with CLSID
{975045DE-9237-4F30-9458-2830C41377DA} from machine SP3DSMP1 failed
due to the following error: 80110823.

Any ideas what I'm doing wrong here...??

thanks
Sunit
 
W

Willy Denoyette [MVP]

All

I'm trying to get this to work but I'm having problems. I have added
reference to a COM+ dll to get the class (type) I need. Now this is
hosted on a remote server (SP3DSMP1) as a COM+ component.

So I tried this from a client...

Type comType = Type.GetTypeFromProgID("NTNameService.UpdateNumber",
'SP3DSMP1_Name', true);
UpdateNumberClass oUp = Activator.CreateInstance(comType);

But this fails with the error:

Retrieving the COM class factory for remote component with CLSID
{975045DE-9237-4F30-9458-2830C41377DA} from machine SP3DSMP1 failed
due to the following error: 80110823.

Any ideas what I'm doing wrong here...??


All I can tell is that 80110823 means "The specified user cannot write to
the system registry.".
Don't know whether you (your COM+ code) are writing to the (remote)
registry, or whether this happens during registration of the COM+ component
in the catalog.

Willy.
 
S

sjoshi23

All I can tell is that 80110823 means "The specified user cannot write to
the system registry.".
Don't know whether you (your COM+ code) are writing to the (remote)
registry, or whether this happens during registration of the COM+ component
in the catalog.

Willy.

Ok thanks. Which user would that mean, the current user calling the
code or the user specified in the Identity tab of the COM+ component.
Could not find any good examples on the web.

Sunit
 
W

Willy Denoyette [MVP]

Ok thanks. Which user would that mean, the current user calling the
code or the user specified in the Identity tab of the COM+ component.
Could not find any good examples on the web.

Sunit


Well, I don't know, it depends on who throws the exception (I guess it's the
Component), and what's the security context your component is running in.
However, before diving into security related issues (which is OT for this NG
anyway), you have to tell us whether you are explicitly accessing the
registry from your component or not. Also, you need to tell us how you
installed the component on the server and it's proxy on the client. Did you
register the component using regsvcs.exe or by code? Did you export the
proxy from the component services snap-in or by code?

Willy.
 
S

sjoshi23

Well, I don't know, it depends on who throws the exception (I guess it's the
Component), and what's the security context your component is running in.
However, before diving into security related issues (which is OT for this NG
anyway), you have to tell us whether you are explicitly accessing the
registry from your component or not. Also, you need to tell us how you
installed the component on the server and it's proxy on the client. Did you
register the component using regsvcs.exe or by code? Did you export the
proxy from the component services snap-in or by code?

Willy.

Actually in my case the COM+ component can be residing in more than 1
server. I'm trying to write a test client that can invoke the COM+
component residing on any server (proved as an input) and return the
results. I created an interop reference by using the COM+ DLL and then
tried the rest of the code. If I use application proxy generated from
server A, won't it be tied to that server ? Also the COM+ component
was created in VB6.

Sunit
 
W

Willy Denoyette [MVP]

Actually in my case the COM+ component can be residing in more than 1
server. I'm trying to write a test client that can invoke the COM+
component residing on any server (proved as an input) and return the
results. I created an interop reference by using the COM+ DLL and then
tried the rest of the code. If I use application proxy generated from
server A, won't it be tied to that server ? Also the COM+ component
was created in VB6.

Sunit



Oh VB6 server, you won't be able to access the server remotely by just
referring to the servers typelib, you need to register the component and
typelib locally. Also, no one stops you from exporting the proxy at every
server running the server and install them at the client.
I would suggest you to start by installing a proxy and look what gives.

Willy.
 

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

Top