tags:

views:

343

answers:

2

Hello,

I have a little COM+ component as a service on a remote server.

I´m trying to execute a method of this component using:

Type type = Type.GetTypeFromProgID("ComPlusTest.ComTestClass",serverName);

// Create Service
Object service = Activator.CreateInstance(type);

// Execute Method
String result = service.GetType().InvokeMember("LaunchPackage",
    BindingFlags.InvokeMethod, null, parameters, null).ToString();

The type is returned as null.

What is the best way to do this??

The server is Windows 2003 Enterprise, the service is a .NET component wraped as COM+ (I know that I don´t have to do it that way, but the purpose is to itegrate a legacy App with a .NET component) The purpose of this is just to test that the .NET COM+ Component works.

Thanks in advance!

A: 

I haven't tried it, but your approach makes sense. It looks very similar to the Interoperating without Proxies but with a remote server.

Perhaps you are running into some other issue (e.g. configuration or permission)?

Some troubleshooting suggestions:

Try to run your test program directly on the "remote" server.

Also, have you tried changing your first line to:

Type type = Type.GetTypeFromProgID("ComPlusTest.ComTestClass",serverName, true);

This should throw an exception if an error is encountered and may provide you with some more information on the specific issue you are hitting.

Tuzo
Thanks, I will add the exception flag to see if I get an exception because right now I´m getting a null.
Arturo Caballero
A: 

I have solved the issue. The COM+ was not correctly installed on the server. I missed the step of configure the assembly in the .NET Framework Configuration Console.

The steps are:

1 Register the assembly (configure assembly) on .NET Framework Configuration Console 2 Register the assembly in the GAC 3 register the COM+ Application in the Component Services Console. Then Add the Component to the actual assembly(dll)

Jeje, I missed the first one.

How ever I appreciate your time on answering the issue.

Thanks!

Arturo Caballero