2010-03-15 128 views
6

WCF TCP上的二進制選項,是否僅適用於Intranet或Internet?WCF與TCP上的二進制文件

TCP是否僅適用於Intranet?

+0

你想通過切換到TCP完成*它是什麼?可能還有其他(甚至可能更好)選項不涉及開放洞。 – 2010-03-15 16:49:23

+0

@Marc - 我只是想了解和探索可用的選項。我知道並且一直在使用HTTP。嘗試瞭解其他選項(現在的TCP)以及它們的優缺點。 – user274915 2010-03-15 17:00:20

回答

2

答案是:這取決於。據我所知,WCF的二進制編碼要求兩個端點都是WCF端點(除非Mono支持二進制編碼,否則目前限制您到Windows)。另一個問題是您是否可以訪問遠程服務器正在偵聽的端口。通過HTTP運行服務的原因之一變得如此流行,因爲80端口更像是開放的。

+0

準確地說 - 理論上,它應該工作得很好 - 但它是TCP - 不是HTTP - 所以期望防火牆問題,並且您的另一端也必須使用二進制編碼談論相同的tcp/ip綁定,所以它只在控制溝通的兩端,真的。 – 2010-03-15 16:42:17

+0

謝謝。因此,如果我打開端口434(或任何TCP),我應該能夠通過互聯網訪問它?或者我需要使用客戶端設置VPN隧道? – user274915 2010-03-15 16:46:13

+0

@ jobless-spt - 根據網絡的安全配置,訪問遠程端口需要做的事情會有很大的不同。您需要與您當地的IT/Sec人員進行交流,以便將其整理出來。但是,請注意,安全人員可能會非常不願意將額外的端口暴露給外部網絡;如果他們不是,你可能需要新的安全人員。 – 2010-03-16 13:59:14

3

序列化程序和傳輸很不相關。有針對常見場景的預配置綁定,但我的理解是,您可以將二進制串行器(NetDataContractSerializer)插入到任何傳輸中。或者寫你自己的; -p

然而 - 不同的傳輸配置(防火牆等)可能比純HTTP更復雜。

See here;


回覆評論(雖然我會反對的速度要求我見過NetDataContractSerializer偶爾...慘敗) - 與其說是運輸(我懷疑你」與http保持最佳關係),但考慮thisthis。另一個二進制串行器,非常適合發送某些類型的消息。它也可以很好地與MTOM(通過http)搭配使用。

+0

謝謝馬克。您是否可以提供有關HTTP協議以外的其他協議的限制。我需要了解,我們是否可以通過互聯網使用其他協議?如果可能的話,需要做什麼(開放端口等)? – user274915 2010-03-15 16:58:59

+0

@ jobless-spt:添加了一些鏈接 – 2010-03-15 17:35:39

+0

+1,HTTP上的二進制文件是一個很好的折衷方案。它保留在IIS中託管服務的能力(我不能告訴你上次我打算編寫我自己的WCF主機)並且它對防火牆友好。如果您不是流式傳輸塊或經常聊天,HTTP開銷可能非常低。 – Josh 2010-03-18 05:30:45