2011-03-06 21 views
2

我試圖創建一個智能代理,因此如果對一個地址的呼叫不起作用,代理會自動轉到第二個地址。爲此,我使用Unity與ChannelFactory。我可以截取我從ChannelFactory.CreateChannel()獲得的頻道上的電話,但我無法告訴我的頻道關閉並指向新的地址。如何從ChannelFactory(WCF)更改頻道的地址

我不想重新創建頻道,我只是想重新配置它。可能嗎?我無法與IChannelICommunicationObjectIClientChannel這樣做......我只能將地址設爲只讀,但不能更改。 (我知道這是可能的WCF路由器,但我試圖解決路由器的單點故障)。

回答

2

一旦你有一個通道,你以後不能在改變它的地址 - 但是當你創建你的工廠的渠道,你可以提供一個端點地址使用方法:

public TChannel CreateChannel(EndpointAddress address) 

有關詳細信息,請參閱MSDN docs for the CreateChannel method

所以,你可以做這樣的事情:

EndpointAddress addr = new EndpointAddress("http://yourserver:7777/YourService");  
IYourService client = factory.CreateChannel(addr); 

如果你想改變它,你只需要從工廠創建一個新的通道實例,並指定一個不同的端點地址。

+0

謝謝。我同意這是做到這一點的唯一方法。 – user80855 2011-03-06 18:03:15