2009-01-27 7 views
6

J'ai installé un composant réparé dans une application serveur COM +. Je veux créer une instance à partir d'un client distant. Le client doit être capable de spécifier dynamiquement le nom de la machine du serveur. Comment puis-je faire cela?Appel d'un composant COM + Serveur distant à partir d'un client C#

J'ai essayé avec Activator:

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

Mais je reçois ceci:

System.Runtime.Remoting.RemotingException: Impossible de créer un récepteur de canal pour se connecter à 'serveur' URL. Un canal approprié n'a probablement pas été enregistré. à System.Runtime.Remoting.RemotingServices.Unmarshal (Type classToProxy, String url, Données d'objet)

Dois-je enregistrer un canal? Si c'est le cas, comment?

Une autre idée consiste à utiliser Marshall.BindToMoniker, mais comment spécifier un surnom pour un objet distant hébergé sur COM + sur le serveur x?

Répondre

3

Eureka! Cela fonctionne:

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

Merci à this question

Questions connexes