6

我在 COM+ 服务器应用程序中安装了一个服务组件。我想从远程客户端创建一个实例。客户端需要能够动态指定服务器机器的名称。我该怎么做呢?

我尝试使用激活器:

            (XSLTransComponent.XSLTransformer)Activator.GetObject(
                        typeof(XSLTransComponent.XSLTransformer),
                        serverName
                        );

但我明白了:

System.Runtime.Remoting.RemotingException:无法创建通道接收器以连接到 URL“服务器”。可能尚未注册适当的频道。在 System.Runtime.Remoting.RemotingServices.Unmarshal(类型 classToProxy,字符串 url,对象数据)

我需要注册频道吗?如果是这样,怎么做?

另一个想法是使用 Marshall.BindToMoniker,但是如何为服务器 x 上的 COM+ 上托管的远程对象指定一个名字对象?

4

1 回答 1

3

尤里卡!这有效:

string serverName = serverTextBox.Text;
Type remote = Type.GetTypeFromProgID("XSLTransComponent.XSLTransformer", serverName);
return (XSLTransComponent.XSLTransformer)Activator.CreateInstance(remote);

感谢这个问题

于 2009-01-27T20:57:50.813 回答