不同分区中的COM+对象激活



我创建了一个COM+域分区,然后将其映射到Windows 2008服务器计算机,并将COM+应用程序导入其中。

我尝试使用以下C#代码从服务器上的特定分区远程激活一个对象:

//partition guid
Guid guidMyPartition = new Guid("41E90F3E-56C1-4633-81C3-6E8BAC8BDD70");
//parition moniker
string uri= "partition:{" + guidMyPartition + "}/new:MyObject";
Type t = Type.GetTypeFromProgID("MyObject", "MyServer");
MyObject obj = (MyObject)Activator.GetObject(t, uri);

但我得到了一个例外:

无法创建连接到URL"partition:{41e90f3e-56c1-4633-81c3-6e8bac8bdd70}/new:MyObject"的通道接收器。可能尚未注册适当的频道。

有人知道这样的激活是如何实现的吗?

  1. 确保你的Com是公开的和可见的。要执行此操作,请添加以下内容标记到您的Com类:

    [ClassInterface(ClassInterfaceType.AutoDual)]
    [Guid("41E90F3E-56C1-4633-81C3-6E8BAC8BDD70")]
    [ProgId("..........")]
    [ComVisible(true)] 
    public class MyCom
    {
    
  2. 请确保您的COM已注册。您可以使用命令行:

    C:WINDOWSMicrosoft.NetFrameworkv4.0.30319regasm "C:.......xxx.dll"
    

最新更新