2010-08-08 58 views
3

我希望我的ServiceHost有任何IP的基地址 所以我想這WCF聽基址anyip

new ServiceHost(typeof(LoggingController),new Uri("0.0.0.0")); 

,這讓我無效的URI格式

任何人知道我應該怎麼寫這個 ?

以及我試圖從我的本地局域網以外訪問它,它沒有工作,我做了一個小測試軟件使用tcpiplistener,我開始聽同一端口,我設置tipip協議的基地址anyip和小測試軟件工作,所以我想通了,我需要做的是設置相同的web服務 -

TcpListener tcpListener = new TcpListener(IPAddress.Any,10021); 

這個作品這也意味着我的系統管理員做了他確保端口/服務器的工作是從accessable外面,現在不應該我的web服務工作!?它的工作,但我不能從外部訪問它,我可以從同一臺PC訪問它,如果我在同一臺PC上運行客戶端

+0

其實我不知道如何接受答案,我以爲所有我必須做的,當我找到答案有幫助我點擊一下就可以了! – Stacker 2010-08-08 12:08:16

回答

1

提醒我我們的軟件有問題。 Web服務的默認配置使用Windows網絡憑證來應用基於消息的安全性 - 由於域/網絡憑據 - 將不能從另一個網絡運行。我們的解決方案是禁用服務綁定的安全性(根據您使用的綁定,這可能有點棘手)。對於像WebHttpBinding這樣的默認綁定,它只是在構造函數中傳遞一個參數。 希望這有助於!

+0

你能解釋一下你的意思嗎? – Stacker 2010-08-08 13:19:10

+0

我需要傳遞什麼參數? – Stacker 2010-08-08 13:20:21

+0

沒想到我得到它的工作這是一個服務器的問題,謝謝任何方式,我會盡快回答你的答案 – Stacker 2010-08-08 14:25:24

4

下面的代碼對我的作品了類似的情況:

Uri baseAddress = new Uri("net.tcp://0.0.0.0:8080/MyService"); 
host = new ServiceHost(typeof(MyServer), baseAddress);