WCF是否始终使用SOAP通过绑定发送信息?

时间:2010-05-03 20:03:11

标签: xml wcf soap wcf-binding

据我所知,您可以从一系列绑定中进行选择,例如TCP,HTTP,HTTPS等。

我认为它总是使用SOAP通过此连接发送数据吗?我正在观看WCF指南,它正在讨论如何将异常序列化为SOAP并发送到客户端。我原以为并非所有的绑定都会使用SOAP来发送数据,所以我对它的工作原理有点困惑。

虽然我了解WCF的基本原理,如何在客户端上设置服务和使用代理,但它似乎没有准确解释数据如何打包发送。

也许答案很明显,它只是使用XML / SOAP,但我很想知道!

1 个答案:

答案 0 :(得分:22)

不,不是全部。 WebHttpBinding是围绕REST协议(HTTP GET,POX,JSON等)

设计的

从技术上讲,WCF只是一种通用的消息传递协议,可以使用任何类型的编码。 默认最常见的编码是basicHttpBindingwsHttpBinding,它们都基于SOAP / XML。

然后你有netTcpBinding,它使用二进制消息编码netMsmqBinding,它使用Microsoft消息队列(MSMQ)协议,依此类推。 WCF中的消息实际上没有硬编码格式。

SOAP有自己的序列化异常规范(AKA故障),因此当您使用基于SOAP的绑定时,行为总是或多或少相同;当你使用其他绑定时,错误行为可能会有很大不同,在某些情况下实际上会吞下异常,除非你覆盖默认行为(这就是webHttpBinding中发生的情况)。