netTCPBinding,wsHttpBinding在幕后

时间:2012-08-31 16:24:10

标签: .net wcf networking

我是网络世界的新手,因此对幕后的工作方式感到有些困惑。这对我来说决定为我的服务选择哪种绑定很重要。我的印象是网络上的通信主要通过TCP / IP协议进行。我经历了TCP / IP协议,根据我的理解,HTTP是一个应用层协议。在后台,应用层与传输层进行通信,传输层使用TCP或UDP协议通过网络传递信息。如果是这种情况,那么使用HTTP协议会是什么?我确信这个谜题中缺少一些东西,但我无法找出它是什么?

2 个答案:

答案 0 :(得分:0)

WCF支持4种传输协议 - HTTP,TCP,MSMQ和命名管道。

建议阅读this MSDN杂志文章和此MSDN帖子,以便进一步了解。

答案 1 :(得分:0)

首先,W3C在1991年回复Why a new protocol?。虽然他们基本上说它不是邮件,文件传输,新闻或搜索。

但我觉得你的问题是为什么要使用wsHttpBinding,因为它下面都是TCP。 Microsoft的netTCPBinding是Microsoft专有协议。它旨在当C#位于管道的两端时使用,此外它主要针对两端的开发将由单个实体管理,即单个开发人员,团队或企业集团。因为正确获取数据类型可能会非常棘手。在NetTcpBinding Class备注中,我们发现:

  

此绑定是适当的Windows Communication Foundation(WCF)   系统提供的通过Intranet进行通信的选择。

     

NetTcpBinding的默认配置比   由WSHttpBinding提供的配置,但仅限于此目的   用于WCF到WCF的通信。

相比之下,wsHttpBinding的设计考虑了互操作性。它至少在某种程度上符合现有的Web服务标准。来自WSHttpBinding Class上的备注

  

WSHttpBinding类似于BasicHttpBinding,但提供了更多   Web服务功能。它使用HTTP传输并提供消息   安全性,与BasicHttpBinding一样,但它也提供事务,   可靠的消息传递和WS-Addressing,默认情况下启用或   通过单一控制设置提供。

列出的大多数附加功能都是现代SOAP堆栈的一部分。

最后,对于那些反而发明他们的协议的人来说,本文将回答Why [you should use] HTTP?