2009-01-27 48 views
6

我在COM +服務器應用程序中安裝了服務組件。我想從遠程客戶端創建一個實例。客戶端需要能夠動態指定服務器機器的名稱。我該怎麼做呢?從C#客戶端調用遠程COM + ServicedComponent

我試着使用激活:

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

但我得到這個:

System.Runtime.Remoting.RemotingException:無法創建信道接收器連接到URL '服務器'。一個合適的頻道可能尚未註冊。 at System.Runtime.Remoting.RemotingServices.Unmarshal(Type classToProxy,String url,Object data)

是否需要註冊一個通道?如果是這樣,怎麼樣?

另一個想法是使用Marshall.BindToMoniker,但是如何爲服務器x上的COM +託管的遠程對象指定名字對象?

回答

3

尤里卡!這工作:

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

由於this question