我是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协议+二进制序列化相比,开销更少。缺点是互操作性。 –