3

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!

4

2 回答 2

1

我没有尝试过,但你的方法是有道理的。它看起来与没有代理但有远程服务器的互操作非常相似。

也许您遇到了其他问题(例如配置或权限)?

一些故障排除建议:

尝试直接在“远程”服务器上运行您的测试程序。

另外,您是否尝试过将第一行更改为:

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

如果遇到错误,这应该会引发异常,并且可能会为您提供有关您遇到的特定问题的更多信息。

于 2009-10-21T05:36:20.800 回答
1

我已经解决了这个问题。COM+ 未正确安装在服务器上。我错过了在 .NET Framework 配置控制台中配置程序集的步骤。

步骤是:

  1. 在 .NET Framework 配置控制台上注册程序集(配置程序集)
  2. 在 GAC 中注册程序集
  3. 在组件服务控制台中注册 COM+ 应用程序。然后将组件添加到实际的程序集(dll)

Jeje,我错过了第一个。

我多么感谢您花时间回答这个问题。

谢谢!

于 2009-10-21T21:12:33.343 回答