回答
答案是:這取決於。據我所知,WCF的二進制編碼要求兩個端點都是WCF端點(除非Mono支持二進制編碼,否則目前限制您到Windows)。另一個問題是您是否可以訪問遠程服務器正在偵聽的端口。通過HTTP運行服務的原因之一變得如此流行,因爲80端口更像是開放的。
準確地說 - 理論上,它應該工作得很好 - 但它是TCP - 不是HTTP - 所以期望防火牆問題,並且您的另一端也必須使用二進制編碼談論相同的tcp/ip綁定,所以它只在控制溝通的兩端,真的。 – 2010-03-15 16:42:17
謝謝。因此,如果我打開端口434(或任何TCP),我應該能夠通過互聯網訪問它?或者我需要使用客戶端設置VPN隧道? – user274915 2010-03-15 16:46:13
@ jobless-spt - 根據網絡的安全配置,訪問遠程端口需要做的事情會有很大的不同。您需要與您當地的IT/Sec人員進行交流,以便將其整理出來。但是,請注意,安全人員可能會非常不願意將額外的端口暴露給外部網絡;如果他們不是,你可能需要新的安全人員。 – 2010-03-16 13:59:14
序列化程序和傳輸很不相關。有針對常見場景的預配置綁定,但我的理解是,您可以將二進制串行器(NetDataContractSerializer
)插入到任何傳輸中。或者寫你自己的; -p
然而 - 不同的傳輸配置(防火牆等)可能比純HTTP更復雜。
回覆評論(雖然我會反對的速度要求我見過NetDataContractSerializer
偶爾...慘敗) - 與其說是運輸(我懷疑你」與http保持最佳關係),但考慮this和this。另一個二進制串行器,非常適合發送某些類型的消息。它也可以很好地與MTOM(通過http)搭配使用。
謝謝馬克。您是否可以提供有關HTTP協議以外的其他協議的限制。我需要了解,我們是否可以通過互聯網使用其他協議?如果可能的話,需要做什麼(開放端口等)? – user274915 2010-03-15 16:58:59
@ jobless-spt:添加了一些鏈接 – 2010-03-15 17:35:39
+1,HTTP上的二進制文件是一個很好的折衷方案。它保留在IIS中託管服務的能力(我不能告訴你上次我打算編寫我自己的WCF主機)並且它對防火牆友好。如果您不是流式傳輸塊或經常聊天,HTTP開銷可能非常低。 – Josh 2010-03-18 05:30:45
- 1. StringIO與二進制文件?
- 2. C二進制文件與ascii文件
- 3. 二進制上載WCF腐敗.mov文件
- 4. 二進制序列化與使用WCF
- 5. Nokogiri與微軟WCF(二進制)溝通?
- 6. 非二進制(十六進制)字符收到了TCP與Python
- 7. 巨大的二進制文件與objcopy
- 8. 在Node.js上上載二進制文件
- 9. 通過TCP發送Erlang中的二進制文件
- 10. Heroku上的Golang二進制文件
- 11. 在二進制文件上的nvprof
- 12. Windows上的胖二進制文件?
- 13. c上的二進制文件
- 14. 如何在C++中追加二進制文件與二進制文件
- 15. WCF和二進制數據
- 16. SVN二進制文件與TortoiseSVN
- 17. gcov與通用二進制文件
- 18. Hessian與大型二進制文件
- 19. 複製二進制文件
- 20. 使用二進制協議的TCP幀
- 21. 在erlang中使用tcp發送原始二進制文件
- 22. 通過TCP發送二進制文件插座Ç
- 23. 通過TCP/IP連接發送二進制文件
- 24. 的Python:二進制文件
- 25. Hadoop的二進制文件
- 26. 如何上傳與文件的二進制體節點JS
- 27. 問題與aiohttp POST的二進制文件上傳
- 28. 更改上傳二進制文件場
- 29. 在Ubuntu上創建二進制文件
- 30. 上傳二進制文件問題
你想通過切換到TCP完成*它是什麼?可能還有其他(甚至可能更好)選項不涉及開放洞。 – 2010-03-15 16:49:23
@Marc - 我只是想了解和探索可用的選項。我知道並且一直在使用HTTP。嘗試瞭解其他選項(現在的TCP)以及它們的優缺點。 – user274915 2010-03-15 17:00:20