我是WCF的新手,我瞭解到使用WCF可以通過各種協議和消息格式在兩個或多個分佈式系統之間進行通信。到目前爲止,爲了實踐目的,我使用了basicHttpBinding。但出於演示的目的,我想確信使用netTcpBinding的位置等。請告訴我net.TcpBinding變得非常有用且幾乎必須選擇的場景。 也據我所知,它是WCF提供的優勢之一,它可以通過各種協議(如其他傳統Web服務無法實現的)無縫地與ASP.Net Web Services進行通信。 這是真的嗎?請澄清。爲什麼有人願意使用Tcp協議託管WCF而不是使用基本的Http協議?
回答
每個不同的目標
謝謝。但是我不能通過Http綁定創建跨平臺或者跨機器的通信(雖然我知道Tcp是面向連接的,而Http不是)? 如果我嘗試在這種情況下嘗試使用Http而不是Tcp,會面臨什麼問題? 請我只想讓我的疑惑清楚。 – StrugglingCoder
@ user3655102你無法通過tcp接收其他平臺的數據,沒有黑魔法或自定義綁定 –
性能是一個二進制協議更好的結合。序列化速度更快,網絡使用更少。
此外,NetTcp綁定支持更多的.NET,例如泛型。它基於BinaryFormatter
。
另請參閱burning_LEGION的關係圖,我不打算複製它。
這裏有一些差異,這將有助於你瞭解答案
basicHttpBinding的 - 主要特點:採用WS-I Basic Profile的1.1非標準主要用於消費舊ASMX Web服務。其他重要的功能,你必須在注意:
作品over HTTP協議 根據BasicHttpSecurityElement支持安全(無/運輸/留言/ TransportWithMessageCredential/TransportCredentialOnly) 支持與MTOM(消息傳輸組織機制1.0信息編碼(MTOM)編碼器),用於與大型二進制附件
NetTcpBinding的消息轉院 - 主要功能:使用WS- *非標準(具有更多的功能,然後WS-I基本概要1.1)用於部署和的.NET WCF服務消費在跨機器通信環境中。其他重要的特點:
作品通過TCP協議 根據NetTcpSecurityElement(無/運輸/郵件/兩者) 支持事務 支持可靠的會話支持安全性(可支持恰好一次交貨保證)
Choosing a Transport此鏈接值得一看
謝謝了。但是我不能通過Http綁定創建跨平臺或者跨機器的通信(雖然我知道Tcp是面向連接的,而Http不是)? 如果我嘗試在這種情況下嘗試使用Http而不是Tcp,會面臨什麼問題? 請我只想讓我的疑惑清楚。 – StrugglingCoder
- 1. 爲什麼基於TCP的HTTP協議?
- 2. WCF TCP協議
- 3. 是基於現有協議的協議還是協議?
- 4. 從本地協議強制使用Javascript協議中的http協議
- 5. 爲什麼我們使用接口而不是協議?
- 6. WebDav協議VS HTTP協議
- 7. 什麼是「協議相對」/ /調用(即而不是http://或https://)?
- 8. mysql_connect()使用http協議
- 9. tcp keepalive - 協議不可用?
- 10. //,而不是協議://
- 11. 什麼是TDS協議版本8.0,爲什麼要使用它?
- 12. 什麼是TCP/IP協議棧?
- 13. 什麼是ExternalAccessory協議使用IOS
- 14. 網絡託管公司使用什麼FTP協議/套件?
- 15. 什麼是一些不使用TCP或UDP等端口的基於IP協議?
- 16. AIMD TCP協議
- 17. 使用Three20與HTTP協議以外的其他協議
- 18. 使用二進制協議的TCP幀
- 19. HTTP協議中使用的實體是什麼?
- 20. http協議句柄是什麼?
- 21. 爲什麼Objective-c協議採用其他協議?
- 22. 「XMP over SOAP協議」是什麼意思?
- 23. REST和HTTP協議有什麼區別?
- 24. 爲什麼webFrameLoadDelegate協議不起作用?
- 25. 使用帶有加密的HTTP協議實現WCF服務
- 26. 從本地私人MSMQ讀取時使用什麼協議?
- 27. uwsgi協議比http協議更快嗎?
- 28. Firebase XMPP協議與HTTP協議
- 29. 使用協議HTPPS
- 30. 使用Websocket協議
使用NetTcpBinding的主要原因是性能。與HTTP協議+二進制序列化相比,開銷更少。缺點是互操作性。 –