我有一个小的 COM+ 组件作为远程服务器上的服务。
我正在尝试使用以下方法执行此组件的方法:
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();
类型返回为 null。
执行此操作的最佳方法是什么?
服务器是 Windows 2003 Enterprise,服务是包装为 COM+ 的 .NET 组件(我知道我不必那样做,但目的是将遗留应用程序与 .NET 组件集成)这样做的目的只是为了测试 .NET COM+ 组件是否正常工作。
提前致谢!
最佳答案
我还没有尝试过,但是你的方法是有道理的。它看起来与 Interoperating without Proxies 非常相似但使用远程服务器。
也许您遇到了一些其他问题(例如配置或权限)?
一些故障排除建议:
尝试直接在“远程”服务器上运行您的测试程序。
此外,您是否尝试过将第一行更改为:
Type type = Type.GetTypeFromProgID("ComPlusTest.ComTestClass",serverName, true);
如果遇到错误,这应该会引发异常,并且可能会为您提供有关您遇到的特定问题的更多信息。
关于.net - 使用 C# 远程调用 COM+ 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1597060/