为什么netTcp必须有其他协议?

时间:2015-11-06 11:15:49

标签: wcf service binding

为什么netTcp有其他协议?为什么BasicHttp和WS在同一个协议中?有人可以解释一下吗?谢谢

WCF SERVICE

2 个答案:

答案 0 :(得分:0)

<强> basicHttpBinding的:                  基本的Web服务通信。将WCF服务公开为旧版ASMX Web服务。用于互操作性。默认情况下没有安全性。

WSHttpBinding:支持WS- *的Web服务。支持交易和可靠的消息传递。

NetTcpBinding:跨计算机的WCF应用程序之间的通信。支持双工合同和交易。

如需更多说明,请查看以下链接

http://www.codeproject.com/Articles/431291/WCF-Services-Choosing-the-appropriate-WCF-binding

http://www.dotnet-tricks.com/Tutorial/wcf/VE8a200713-Understanding-various-types-of-WCF-bindings.html

http://wcftutorial.net/wcf-types-of-binding.aspx

答案 1 :(得分:0)

取决于您在&#34; protocol&#34;。

下的理解

将尝试解释:在任何情况下,任何WCF服务都使用TCP / IP传输协议。 当你启动服务时,它会侦听IP套接字,然后接受传入的字节[],然后区别在于应用程序级协议。

为了将字节转换为.NET对象,有一个从所谓的MessageEncoder开始的管道。在编码器中,字节被反序列化为Message对象。默认情况下,有三种类型的编码器:

  • 文本编码器,将byte []转换为字符串
  • MTOM编码器。
  

MTOM是一种使用SOAP消息作为原始字节传输大型二进制附件的机制,允许更小的消息

  • 二进制编码器,使用.net特定的二进制序列化器将byte []转换为.NET对象,该序列化器与非.net系统不兼容

所以区别在于:

  • BasicHttp绑定使用文本编码器。它将传入的字节解释为HTTP请求,并将字节流转换为Http标头和正文。然后根据绑定和消息解串器的特定类型对主体进行反序列化,这是服务行为的一部分。 在一种情况下,这个主体被反序列化为SOAP / XML(BasicHttp),其他如XML或JSON(webHttpBinding)。
  • WS bindins可以使用文本编码器以及MTOM编码器。在第二种情况下,编码器知道如何从byte []流中获取文本XML / SOAP部分和二进制附件。
  • netTcp绑定使用二进制编码器并将字节直接反序列化为对象。

因此,绑定地址中的协议部分只是区分了这两个主要情况&#34; http://&#34;对于一种标准化并兼容非.NET世界,基于文本的绑定。和&#34; net.tcp&#34;对于纯Windows + .NET的东西。