2011-03-23 64 views
0

我在這個類似聊天的應用程序中使用雙工WCF合約,我已運行。 (顯然不是真正的聊天,但爲了考慮它的興趣,你可以認爲它足夠相似)。WCF雙工與DHCP?

問題是,許多談論此合同的客戶端正在運行dhcp,並且我無法對此做任何事情。

什麼是處理與DHCP的雙工通信的最佳方式?我發現一個設置<compositeDuplex clientBaseAddress="Uri"/>這意味着我可以在運行時更新此值....似乎有點kludgy。

更新 我發現在我的WCF服務器日誌中,部分問題是它將主機名放在響應地址中。我在這裏做錯了什麼?

感謝

+1

我使用WCF約一個月,認爲這是一個神奇的網絡問題解決方案。我錯了。我最終使用.NET中包含的套接字API(System.Net.Sockets);也節省了很多麻煩,加上它是跨平臺的(通過Mono)。 – IDWMaster 2011-03-23 22:36:20

+0

DHCP與您的問題有什麼關係? – 2011-03-24 01:49:01

+0

@John,問題似乎是服務器需要在客戶端打開一個端口,但是當客戶端連接時,它只提供其主機名,而不是其完整的IP地址來響應。 – Beta033 2011-03-24 15:28:25

回答

1

說白了,你做的不對的第一件事就是用DualHttpBinding進行雙面。整個綁定是一個巨大的混亂,很容易出現這樣的問題(和防火牆,哦,上帝的防火牆)。

如果您要使用類似net.tcp的東西,而不是客戶端建立到服務器的單向雙向連接,而不需要兩個連接,並且服務器不再關心客戶端是否在DHCP上。

+0

謝謝你的坦白。遠離http傳輸徹底解決了我們的問題。接下來的問題變成了,因爲我們使用自定義綁定,所以''元素不支持配置中的maxReceivedMessageSize,因此改變我們的自定義編碼的MessageEncodingBindingElment構造函數修復了這個問題。 – Beta033 2011-03-24 22:07:50

+0

很高興爲你效勞。 :) – Tridus 2011-03-25 00:35:17