开发者

Calling a COM+ Component remotely using C#

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!


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.


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!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜