2010-03-09 199 views
3

如何獲取服務器地址,該地址用於有多個IP地址的請求?獲取WCF中的服務器IP地址?

E.g.

  • 服務器的地址爲10.0.0.1和10.0.0.2。
  • 處理請求時,服務器服務需要知道客戶端是否使用10.0.0.1或10.0.0.2來連接它。

到目前爲止,我只發現

  • OperationContext.Current.EndpointDispatcher.EndpointAddressOperationContext.Current.Channel.LocalAddress含有的.config地址(如本地主機)

  • OperationContext.Current.IncomingMessageProperties.Via包含URL所使用的客戶端連接到服務器(但這可能只是來自客戶端主機文件的名稱)。

編輯:還在尋找一個解決方案...

+0

你的意思是傳入的客戶端? – rerun 2010-03-09 14:03:49

+0

不,我需要服務器的IP。例如。服務器具有10.0.0.1和10.0.0.2 - 客戶端用於連接到服務器的地址是什麼? – laktak 2010-03-09 14:11:47

+0

這是否處於負載平衡狀態?此服務器中是否有多個網絡適配器? – rerun 2010-03-09 14:20:06

回答

0

無需任何額外的幫助和工作從你的身邊,我不認爲你可以得到這個。

客戶端向URL發送消息 - 消息被序列化,發送,處理併發回。沒有可以查詢的「常設聯繫」,服務器沒有辦法告訴你。

你可以做的是創建一個Message Inspector擴展,它可以在服務器端註冊,然後將服務器的本地IP寫入一個標題字段,然後你可以在客戶端檢查它。

谷歌或必應爲「WCF消息督察」,你應該找到相當多的命中 - 一些更好的國家:

+0

對不起,我的問題還不夠清楚 - 我需要服務器上的信息。請參閱我的編輯。 – laktak 2010-03-09 18:25:39