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

Wcf 为什么netTcp必须有其他协议?,wcf,service,binding,Wcf,Service,Binding,为什么netTcp有其他协议?为什么BasicHttp和WS在同一协议中?有人能给我解释一下吗?多谢各位 BasicHttpBinding: 基本的web服务通信。将WCF服务公开为旧版ASMX web服务。用于互操作性。默认情况下没有安全性 WSHttpBinding:支持WS-*的Web服务。支持事务和可靠的消息传递 NetTcpBinding:跨计算机的WCF应用程序之间的通信。支持双重合同和事务 有关更多说明,请查看以下链接 取决于您对“协议”的理解 将尝试解释:在任何情况下,任何W

为什么netTcp有其他协议?为什么BasicHttp和WS在同一协议中?有人能给我解释一下吗?多谢各位


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

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

NetTcpBinding:跨计算机的WCF应用程序之间的通信。支持双重合同和事务

有关更多说明,请查看以下链接


取决于您对“协议”的理解

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

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

  • 文本编码器,将字节[]转换为字符串
  • MTOM编码器
MTOM是一种将SOAP消息作为原始字节传输大型二进制附件的机制,允许发送较小的消息

  • 二进制编码器,它使用与非.NET系统不兼容的.NET特定二进制序列化程序将字节[]转换为.NET对象
这就是区别:

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

因此,绑定地址中的协议部分只是将这两种主要情况“http://”区分为一种标准化的绑定,并与基于文本的非.NET世界兼容。和“net.tcp”表示纯windows+.net的内容。

你检查过链接了吗