WCF - 选择最适合的绑定/编码器

时间:2009-11-11 16:28:04

标签: c# wcf serialization encoding binding

我有一个客户端服务器应用程序,其中客户端和服务器之间的通信是通过WCF进行的。我的WCF服务应该只由我的客户使用。也就是说,我对服务互操作性并不感兴趣。 该服务可能与我的客户端应用程序不在同一网络中。它将在IIS6.0中托管服务

1)如果我通过HttpBinding使用二进制序列化进行WCF编码,性能优势有多大(我知道消息会更紧凑,因此网络流量更少,处理字节更少) 2)二进制编码器是否能够通过网络/防火墙? (我认为这将是,因为它仍然超过Http)
3)我可以使用TCP或netTcp绑定并仍然在IIS6.0中托管?或者约束是什么? 4)对于我的特定场景,什么是最适合的绑定?

好吧,我正在使用.net framework 3.5 SP1

请指导我

谢谢和问候

2 个答案:

答案 0 :(得分:1)

(3)否则,您无法在IIS 6.0中使用TCP绑定托管WCF服务

答案 1 :(得分:1)

  1. 我做了一些实验,对于基本的消息交换,二进制编码与xml编码的性能可以忽略不计。
  2. 除非防火墙根据HTTP消息的正文编码阻止某些内容,否则不应该成为问题。
  3. 否。您需要使用Windows服务在IIS7 / WAS或自托管主机中进行托管。
  4. 我将从HTTP + XML开始。稍后将编码更改为二进制文件非常简单,对您的服务实现没有任何影响。如果某些性能测试表明有必要,您只会这样做。至于使用TCP / IP与HTTP,由于标题,HTTP也有一些线路开销,但同样可以忽略不计。但是,如果您执行某些网络监视并发现有效负载大于网络可以容忍的范围,则可以再次切换到netTcpBinding,而不会对您的实现产生任何实际影响。这就是WCF的美丽。