2010-09-09 30 views
2

我有一個自託管WCF服務的應用程序。WCF DiscoveryClient從遠程機器返回對本地主機的引用

我的WCF服務在URI「net.tcp:// localhost:8004/DocumentService」下發布。當我在遠程計算機上運行服務並嘗試使用新的.NET 4類DiscoveryClient發現服務時,找到的服務都具有URI「net.tcp:// localhost:8004/DocumentService」,但沒有任何關於服務所在的實際機器。

顯然這是沒用的,如果我想訪問遠程機器上的服務。但是我無法在傳遞給FindProgressChanged的參數中找到對實際遠程機器(IP地址或服務器名稱)的任何引用。

有沒有辦法獲取有關遠程機器的信息,還是必須使用遠程機器的機器名稱發佈我的服務?或者DiscoveryClient剛剛壞了?

我希望這是有道理的。

回答

4

我花了很多時間調查這個問題。在代碼中構建基地址對我來說是不可接受的,因爲它意味着硬編碼傳輸方案和端口(後者當然可以存儲在單獨的配置部分,但爲什麼不僅僅是使用現有部分?)。我希望有能力像平常一樣在配置中配置基地址。事實證明,像<add baseAddress="net.tcp://*:8731/"/>這樣的基地址可以完美地工作。我認爲程序化配置也是如此。

+1

就是這樣,嗯等等。星號解析爲機器名稱,這使得它很容易,例如,寫一個筆記到事件日誌「sup,在url:etcetc監聽」。 – Will 2011-01-17 20:50:26

相關問題