簡體   English   中英

獲取WCF中回調通道的IP地址

[英]Obtaining IP Address of Callback Channel in WCF

我在雙工通道上有一個 WCF 服務,帶有回調合同。 當客戶端在服務上調用SubscribeMe()方法時,服務通過將OperationContext.Current.GetCallbackChannel<T>()的結果存儲在列表中來跟蹤客戶端。 該服務將定期 ping 這些回調通道以跟蹤其有效性,並使那些已關閉或超時的通道過期。

我的問題是:當遠程主機沒有主動向我的服務發出請求時,例如當我調用MyCallbackContract.Ping()時,我如何獲取有關遠程主機的信息?

我嘗試將回調通道 object 轉換為IContextChannel ,並訪問IContextChannel::RemoteAddress屬性,但此屬性包含某種與回調通道上的實際遠程主機無關的命名空間 URI。

未經測試(需要一段時間才能設置所有配置):但我認為您正在尋找這樣的東西:

OperationContext context = OperationContext.Current;
MessageProperties messageProperties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpointProperty =
                messageProperties[RemoteEndpointMessageProperty.Name]
                as RemoteEndpointMessageProperty;

var address = endpointProperty.Address;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM