从C#客户端调用远程COM + ServicedComponent

时间:2009-01-27 20:06:17

标签: .net com+

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

我尝试使用Activator:

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

但我明白了:

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

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

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

1 个答案:

答案 0 :(得分:3)

尤里卡!这有效:

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

感谢this question