序列化器和传输通常是无关的。有预配置的绑定用于常见情况,但我的理解是您可以将二进制序列化器(NetDataContractSerializer)插入任何传输中。或者编写自己的;-p 然而,与纯HTTP相比,不同的传输可能更难配置(防火墙等)。请参见此处(尽管我会质疑速度声明;我曾在某些场合看到过NetDataContractSerializer被折磨......) 关于评论-不太关注传输(我怀疑最好使用http),但请考虑这个和这个。另一种二进制序列化器,非常适合发送某些类型的消息。它也可以与MTOM(通过http)很好地配合使用。
答案是:这取决于具体情况。据我所知,WCF的二进制编码需要两个端点都是WCF端点(这将限制你只能在Windows上使用,除非/直到Mono支持二进制编码)。另一个问题是您是否可以访问远程服务器正在侦听的端口。将服务运行在HTTP上变得如此流行的原因之一是端口80更容易打开。