2014-01-14 82 views
1

我目前正在從事涉及客戶端回調的服務,涉及netTcpBinding。但是,我無法找到以下兩個問題的答案:如何以編程方式在netTcpBindings中設置客戶端回撥地址

  1. 當客戶端調用服務時,客戶端的地址將用於回調?
  2. 如何在客戶端調用服務之前以編程方式更改此地址?

據我所知,有wsDualHttpBindings工作時,有一個叫做clientBaseAddress屬性,可以用來設置客戶端地址。但是,netTcpBinding沒有類似的屬性?

+0

'NetTcpBinding'是複式開箱。 'wsDualHttpBinding'實際上是兩個HTTP通道 - 一個是從客戶端到服務端,另一個是從服務端到客戶端(用於回調),這就是爲什麼'wsDualHttpBinding'有'clientBaseAddress'。真正的雙工通道不需要它。 – Tim

回答

1

netTcpBinding是雙向的,所以你不需要做任何事情來指定客戶端的地址。

您必須爲wsDualHttpBinding指定它的原因是因爲該綁定建立了2個HTTP通道(因爲HTTP不是雙向的) - 一個用於客戶端到服務,另一個用於服務到客戶端。

因此,要回答你的問題:

  1. 將用於回調的地址是客戶端的地址。

  2. 你並不需要netTcpBinding更改回調地址。事實上,你不想爲wsDualHttpBinding改變它 - 我想你的意思是你如何設置代碼,在這種情況下,你不能也不需要。

+0

如果連接關閉或客戶端或服務崩潰,是否可以重新建立連接*僅當服務需要使用回調時? – user3186786

+0

我不確定我是否理解這個問題,但如果您的意思是您可以根據需要打開和關閉連接,那麼我認爲很可能不會。 NetTcpBinding是雙向的,所以回調「能力」總是存在,無論是否使用。另請注意,客戶端啓動連接 - 服務無法發起連接只是發送回調。 – Tim

相關問題