在另一个分区中的COM +对象激活

我创build了一个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); 

但我得到这个例外:

无法创build通道接收器来连接到URL'分区:{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:\WINDOWS\Microsoft.Net\Framework\v4.0.30319\regasm "C:\.......\xxx.dll" 
Interesting Posts