假设我有一个服务暴露两个端点,第一个是NetTCPBinding,第二个是HttpBinding的任何风格。他们都实现了完全相同的服务合同。
电线上发送的内容有何不同?
我认为在所有情况下,在将消息放到线路上之前它将被转换为二进制文件,因此http也位于网络术语中的tcp之上 - 因此http通信需要额外的地方。
欣赏这个问题有点模糊,但希望有人会知道我想问的问题:)
答案 0 :(得分:7)
在WCF中,特定绑定不一定意味着特定编码。可以配置各种绑定以使用各种编码。 Net.TCP默认使用二进制编码(我认为是MTOM),默认情况下HTTP使用text / xml编码。
使用net.tcp,您的邮件会发送给发件人 - > net.tcp - >接收器。使用HTTP,他们来自发件人 - > http - > tcp - > http - >接收器。还有一层。 tcp的优点是以下两者:额外层和默认编码。
使用二进制编码的HTTP接近net.tcp性能。
编辑:实际上我认为Net.TCP中可能还有其他一些优化。这是一个WCF-WCF通信场景,因此MS可以控制两端。