C# COM+;远程计算机上的调用错误代码

C# COM+;远程计算机上的调用错误代码,c#,com-interop,com+,typelib,C#,Com Interop,Com+,Typelib,我有一个新的要求,改变我们引用COM+对象的方式。 在此之前,可以通过add引用添加它,并通过TypeLib名称从列表中查找COM对象 这一点现在已经改变,我正试图弄清楚如何使用Activator.CreateInstance创建实例 到目前为止,我有以下几点: var type = Type.GetTypeFromProgID("DllName.COMName", "serverName", false); var comObject = Activator.CreateInstance(ty

我有一个新的要求,改变我们引用COM+对象的方式。 在此之前,可以通过add引用添加它,并通过
TypeLib
名称从列表中查找COM对象

这一点现在已经改变,我正试图弄清楚如何使用Activator.CreateInstance创建实例

到目前为止,我有以下几点:

var type = Type.GetTypeFromProgID("DllName.COMName", "serverName", false);
var comObject = Activator.CreateInstance(type);
调用该方法时

comObject.GetType().InvokeMember("MyMethod",   BindingFlags.Public |  BindingFlags.InvokeMethod, null, COMObject, new object[1] { "12345" });
在调用过程中,当代码在远程计算机上执行时,我得到一个
未知名称(0x80020006)
, …但是在开发机器上,调用可以顺利通过。在远程机器上,它记录异常!这让我发疯

我发现了这个,但我认为它与我无关

两台机器上的COM+接口名称都是相同的,我已经没有选择了。有没有人在两台不同的机器上遇到过同样的问题?
提前感谢。

为什么要使用反射而不是互操作?您可以添加对类型库的引用,实例化强类型对象,并直接在其上调用
MyMethod
。此外,如果您搜索错误号和消息,您会发现。COM/COM+通过接口工作。多个类可以支持单个接口。该类本身不公开任何成员,您必须请求一个特定的接口来调用该类上的方法。ok将查看他们的建议。是否是COM+上的权限问题?否。这将是一条拒绝访问的消息。使用COM/COM+无法简单地完成您尝试的操作。不能对类调用方法,需要先请求接口。您可能会对VB6/VB.NET中使用的“默认”接口感到困惑——如果没有指定其他接口(通过强制转换),VB编译器将调用这些特殊命名的接口。它们没有任何默认设置,只是编译器的魔力。为什么要使用反射而不是互操作?您可以添加对类型库的引用,实例化强类型对象,并直接在其上调用
MyMethod
。此外,如果您搜索错误号和消息,您会发现。COM/COM+通过接口工作。多个类可以支持单个接口。该类本身不公开任何成员,您必须请求一个特定的接口来调用该类上的方法。ok将查看他们的建议。是否是COM+上的权限问题?否。这将是一条拒绝访问的消息。使用COM/COM+无法简单地完成您尝试的操作。不能对类调用方法,需要先请求接口。您可能会对VB6/VB.NET中使用的“默认”接口感到困惑——如果没有指定其他接口(通过强制转换),VB编译器将调用这些特殊命名的接口。它们没有任何默认,只是编译器的魔力