2009-01-27 16 views
6

Tengo un componente revisado instalado en una aplicación de servidor COM +. Quiero crear una instancia desde un cliente remoto. El cliente debe ser capaz de especificar el nombre de la máquina servidor de forma dinámica. ¿Cómo hago esto?Llamar a un COM + ServicedComponent remoto desde un cliente C#

He intentado utilizar el Activador:

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

Pero me sale esto:

System.Runtime.Remoting.RemotingException: No se puede crear receptores de canal para conectarse a la URL 'servidor'. Probablemente no se haya registrado un canal apropiado. en System.Runtime.Remoting.RemotingServices.Unmarshal (Escriba classToProxy, String url, Datos de objeto)

¿Debo registrar un canal? ¿Si es así, cómo?

Otra idea es utilizar Marshall.BindToMoniker, pero ¿cómo especifico un moniker para un objeto remoto alojado en COM + en el servidor x?

Respuesta

3

Eureka! Esto funciona:

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

Gracias a this question

Cuestiones relacionadas