如何从C#调用DCOM对象?

我有一个CLSID,我需要在不同的服务器(即DCS)中实例化这个,就像我的工作机器一样(即MWS)。

现在,如果我使用以下内容:

var type = Type.GetTypeFromCLSID(new Guid(CLSID), Environment.MachineName, true); var COMObject = Activator.CreateInstance(type); var returnValue = COMObject.GetType().InvokeMember(methodName, flags, null, COMObject, args, argModifiers, null, null); 

然后我得到“COM目标没有实现IDispatch”错误。 好吧,我知道可能COM目标对象没有IDispatch,所以它失败了。

现在尝试了其他的东西,如果我在VS中添加该COM DLL的引用,那么VS生成互操作程序集然后一切都像常规.net对象创建一样工作,但在这种情况下,对象实际上是在我的本地机器中生成的(MWS) pc)没有进入我想要的服务器。

伙计们有什么建议我怎么处理这种情况?

提前致谢。

您可以将COM +作为代理从目标计算机导出,并将其安装在运行该应用程序的计算机上。

转到目标计算机上的组件服务控制台,右键单击COM +应用程序并选择导出…然后选择应用程序代理单选按钮。 这会将代理导出到该COM +应用程序作为MSI文件。 您需要在您的机器上安装它而不是真正的COM +应用程序(这意味着如果它安装在那里就删除它),然后尝试您的互操作。