WCF NetTCPBinding与HttpBinding在线上发送的数据差异

Rem*_*tec 5 wcf basichttpbinding wcf-binding wshttpbinding nettcpbinding

假设我有一个服务暴露两个端点,第一个是NetTCPBinding,第二个是HttpBinding的任何风格.他们都实现完全相同的服务合同.

电线上发送的内容有什么区别?

  • 使用netTcp是我的消息仍然序列化为XML?或者我的对象的二进制表示?
  • 在收到消息的方面有什么区别?http端点是否只能理解http命令(get/post等),因为nettcp端点可以理解不同的东西?
  • 为什么nettcp比http更高效(在这种情况下我不需要互操作性) - 哪里是开销?

我认为在所有情况下,在将消息放到线路上之前它将被转换为二进制文件,因此http在网络术语中也位于tcp之上 - 因此http通信需要额外的空间.

欣赏这个问题有点模糊,但希望有人会知道我想问的是什么:)

Joh*_*hnC 7

在WCF中,特定绑定不一定意味着特定编码.可以配置各种绑定以使用各种编码.Net.TCP默认使用二进制编码(我认为是MTOM),HTTP默认使用text/xml编码.

使用net.tcp,您的邮件将发送者 - > net.tcp - > receiver.使用HTTP,它们来自sender - > http - > tcp - > http - > receiver.还有一层.tcp的优点是以下两者:额外层和默认编码.

具有二进制编码的HTTP接近net.tcp性能.

编辑:其实我认为在Net.TCP中可能还有其他优化.这是一个WCF-WCF通信场景,因此MS可以控制两端.