为什么有人喜欢使用Tcp协议而不是使用基本的Http协议来托管WCF?

时间:2015-06-22 10:58:21

标签: c# asp.net wcf tcp

我是WCF的新手,我了解到使用WCF,您可以通过各种协议和消息格式在两个或多个分布式系统之间进行通信。到目前为止,出于练习目的,我使用了basicHttpBinding。但出于演示目的,我想确信在哪里使用netTcpBinding等。请告诉我net.TcpBinding变得非常有用并几乎必须选择的场景。 另据我所知,这是WCF提供的传统各种对应产品(如ASP .Net Web Services)的主要优势之一,它可以通过其他传统Web服务无法通过的各种协议进行无缝通信。 。 这是真的吗?请澄清。

3 个答案:

答案 0 :(得分:3)

针对不同目标的每个约束 bindins

答案 1 :(得分:1)

Performance is much better with a binary protocol. Serialization is faster and the network is used less.

Also, the NetTcp binding supports more of .NET, for example generics. It is based on BinaryFormatter.

Also see burning_LEGION's diagram, I'm not going to copy it over.

答案 2 :(得分:1)

以下是一些有助于您理解答案的差异

BasicHttpBinding - 主要功能:使用 WS-I Basic Profile 1.1 标准主要用于使用旧的ASMX WebServices。其他重要功能,你必须注意:

通过http协议工作 根据BasicHttpSecurityElement支持安全性(无/传输/消息/ TransportWithMessageCredential / TransportCredentialOnly) 支持使用Mtom(消息传输组织机制1.0(MTOM)编码器)进行消息编码,用于传输具有大型二进制附件的消息

NetTcpBinding - 主要功能:使用WS- * standart(具有更多功能,然后是WS-I Basic Profile 1.1)在跨机器通信环境中部署和使用.NET WCF服务。其他重要特征:

适用于tcp协议 根据NetTcpSecurityElement(无/传输/消息/两者)支持安全性 支持交易 支持可靠的会话(可以支持确切的一次交付保证)

Choosing a Transport此链接值得一看