.net - 使用 C# 远程调用 COM+ 组件

标签 .net com+

我有一个小的 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/

相关文章:

.net - DebugDiag 分析超时问题

.net - NET 4.0 在 COM+ 中安装程序集加载额外的依赖项

c# - 为什么从代理调用 COM+ 方法时会出现 E_ACCESSDENIED?

.net - COM+ 组件调用其他 COM+ 组件 - "Cannot load type"

c# - 在 Windows 资源管理器中打开文件夹结构时,DirectoryInfo.Delete(True) 不会删除

c# - 将图像添加到单元格 - iTextSharp

c# - 内联汇编代码以获取CPU ID

c# - 动态函数列表并动态调用它们

c# - 将 SilverLight 日期选择器的默认日期设置为当前日期

c++ - ATL COM+ 使用接口(interface)作为参数