2015-06-22 117 views
1

我是WCF的新手,我了解到使用WCF可以通过各种协议和消息格式在两个或多个分布式系统之间进行通信。到目前为止,为了实践目的,我使用了basicHttpBinding。但出于演示的目的,我想确信使用netTcpBinding的位置等。请告诉我net.TcpBinding变得非常有用且几乎必须选择的场景。 也据我所知,它是WCF提供的优势之一,它可以通过各种协议(如其他传统Web服务无法实现的)无缝地与ASP.Net Web Services进行通信。 这是真的吗?请澄清。为什么有人愿意使用Tcp协议托管WCF而不是使用基本的Http协议?

+3

使用NetTcpBinding的主要原因是性能。与HTTP协议+二进制序列化相比,开销更少。缺点是互操作性。 –

回答

3

每个不同的目标 bindins

+0

谢谢。但是我不能通过Http绑定创建跨平台或者跨机器的通信(虽然我知道Tcp是面向连接的,而Http不是)? 如果我尝试在这种情况下尝试使用Http而不是Tcp,会面临什么问题? 请我只想让我的疑惑清楚。 – StrugglingCoder

+0

@ user3655102你无法通过tcp接收其他平台的数据,没有黑魔法或自定义绑定 –

1

性能是一个二进制协议更好的结合。序列化速度更快,网络使用更少。

此外,NetTcp绑定支持更多的.NET,例如泛型。它基于BinaryFormatter

另请参阅burning_LEGION的关系图,我不打算复制它。

1

这里有一些差异,这将有助于你了解答案

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此链接值得一看

+0

谢谢了。但是我不能通过Http绑定创建跨平台或者跨机器的通信(虽然我知道Tcp是面向连接的,而Http不是)? 如果我尝试在这种情况下尝试使用Http而不是Tcp,会面临什么问题? 请我只想让我的疑惑清楚。 – StrugglingCoder