我目前正在從事涉及客戶端回調的服務,涉及netTcpBinding
。但是,我無法找到以下兩個問題的答案:如何以編程方式在netTcpBindings中設置客戶端回撥地址
- 當客戶端調用服務時,客戶端的地址將用於回調?
- 如何在客戶端調用服務之前以編程方式更改此地址?
據我所知,有wsDualHttpBindings
工作時,有一個叫做clientBaseAddress
屬性,可以用來設置客戶端地址。但是,netTcpBinding
沒有類似的屬性?
我目前正在從事涉及客戶端回調的服務,涉及netTcpBinding
。但是,我無法找到以下兩個問題的答案:如何以編程方式在netTcpBindings中設置客戶端回撥地址
據我所知,有wsDualHttpBindings
工作時,有一個叫做clientBaseAddress
屬性,可以用來設置客戶端地址。但是,netTcpBinding
沒有類似的屬性?
netTcpBinding
是雙向的,所以你不需要做任何事情來指定客戶端的地址。
您必須爲wsDualHttpBinding
指定它的原因是因爲該綁定建立了2個HTTP通道(因爲HTTP不是雙向的) - 一個用於客戶端到服務,另一個用於服務到客戶端。
因此,要回答你的問題:
將用於回調的地址是客戶端的地址。
你並不需要netTcpBinding
更改回調地址。事實上,你不想爲wsDualHttpBinding
改變它 - 我想你的意思是你如何設置代碼,在這種情況下,你不能也不需要。
如果連接關閉或客戶端或服務崩潰,是否可以重新建立連接*僅當服務需要使用回調時? – user3186786
我不確定我是否理解這個問題,但如果您的意思是您可以根據需要打開和關閉連接,那麼我認爲很可能不會。 NetTcpBinding是雙向的,所以回調「能力」總是存在,無論是否使用。另請注意,客戶端啓動連接 - 服務無法發起連接只是發送回調。 – Tim
'NetTcpBinding'是複式開箱。 'wsDualHttpBinding'實際上是兩個HTTP通道 - 一個是從客戶端到服務端,另一個是從服務端到客戶端(用於回調),這就是爲什麼'wsDualHttpBinding'有'clientBaseAddress'。真正的雙工通道不需要它。 – Tim