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:
- Register the assembly (configure assembly) on .NET Framework Configuration Console
- Register the assembly in the GAC
- 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!
精彩评论