2009-01-27 11 views
6

Ho un componente servito installato in un'applicazione server COM +. Voglio creare un'istanza da un client remoto. Il client deve essere in grado di specificare il nome della macchina del server in modo dinamico. Come faccio a fare questo?Chiamata di un componente ServicedServer remoto da un client C#

Ho provato ad utilizzare Activator:

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

ma ottengo questo:

System.Runtime.Remoting.RemotingException: Impossibile creare sink di canale per la connessione a URL 'server'. Probabilmente non è stato registrato un canale appropriato. a System.Runtime.Remoting.RemotingServices.Unmarshal (Type classToProxy, String url, Object data)

Devo registrare un canale? Se é cosi, come?

Un'altra idea è utilizzare Marshall.BindToMoniker, ma come si specifica un moniker per un oggetto remoto ospitato su COM + sul server x?

risposta

3

Eureka! Questo funziona:

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

Grazie a this question

Problemi correlati