Wcf Binding Comparision List and Supported Features (Reference)
Posted by Dan Rigsby on 19th January 2008
I have been working pretty heavily with Wcf over the last couple of weeks and really dived into understanding the ABC’s (Addressing, Binding and Contracts) of Wcf. If you dont already know, Addressing and Contracts are very straight forward. An Address is the uri string and the contract is the name of the interface that the endpoint implements. Binding is a quite a bit more difficult to understand and get right. There are a number of different binding, configuration settings, and behaviors to wrap your arms around. I put together a little “Cheatsheet” reference to help me understand each binding and when to use each. This data is primarily taken from http://msdn2.microsoft.com/en-us/library/ms731092.aspx with quite a bit of additions.
| Name (Config Name) [Schemas] | Transport | Message Encoding | Message Version | Interop | Security | Session | Tx Flow | Duplex |
| BasicHttpBinding (basicHttpBinding) [http, https] |
HTTP/HTTPS |
Text |
SOAP 1.1 |
Basic Profile 1.1 | None, Transport, Message, Mixed | – | – | N |
| A binding that is suitable for communicating with WS-Basic Profile conformant Web services like ASP.NET Web services (ASMX)-based services. | ||||||||
| WSHttpBinding (wsHttpBinding, webHttpBinding) [http, https] |
HTTP/HTTPS | Text, MTOM |
SOAP 1.2, WS-A 1.0 |
WS | None, Transport, Message, Mixed | None, Transport, Reliable Session | No, Yes (WS-AT) | N |
| A secure and interoperable binding that is suitable for non-duplex service contracts. | ||||||||
| WS2007HttpBinding (ws2007HttpBinding) [http, https] |
HTTP/HTTPS | Text, MTOM | SOAP 1.2, WS-A 1.0 | WS-Security, WS-Trust, WS-SC, WS-SP | None, Transport, Message, Mixed | None, Transport, Reliable Session | No, Yes (WS-AT) | N |
| WSDualHttpBinding (wsDualHttpBinding) [http] |
HTTP | Text, MTOM |
SOAP 1.2, WS-A 1.0 |
WS | None, Message | Reliable Session | No, Yes (WS-AT) | Y |
| A secure and interoperable binding that is suitable for duplex service contracts or communication through SOAP intermediaries. | ||||||||
| WSFederationHttpBinding (wsFederationHttpBinding) [http, https] |
HTTP/HTTPS | Text, MTOM |
SOAP 1.2, WS-A 1.0 |
WS-Federation | None, Message, Mixed | None, Reliable Session | No, Yes (WS-AT) | N |
| A secure and interoperable binding that supports the WS-Federation protocol, enabling organizations that are in a federation to efficiently authenticate and authorize users. | ||||||||
| WS2007FederationHttpBinding (ws2007FederationHttpBinding) [http, https] |
HTTP/HTTPS | Text, MTOM |
SOAP 1.2, WS-A 1.0 |
WS-Federation | None, Message, Mixed | None, Reliable Session | No, Yes (WS-AT) | N |
| A secure and interoperable binding that derives from WS2007HttpBinding and supports federated security. | ||||||||
| NetTcpBinding (netTcpBinding) [net.tcp] |
TCP | Binary |
SOAP 1.2 |
.Net | None, Transport, Message, Mixed | Transport, Reliable Session | No, Yes (OleTx) | Y |
| A secure and optimized binding suitable for cross-machine communication between WCF applications. | ||||||||
| NetPeerTcpBinding (netPeerTcpBinding) [net.p2p] |
P2P | Binary |
SOAP 1.2 |
Peer | None, Transport, Message, Mixed | – | – | Y |
| A binding that enables secure, multi-machine communication. | ||||||||
| NetNamedPipeBinding (netNamedPipeBinding) [net.pipe] |
Named Pipe (IPC) | Binary |
SOAP 1.2 |
.Net | None, Transport | None, Transport | No, Yes (OleTx) | Y |
| A secure, reliable, optimized binding that is suitable for on-machine communication between WCF applications. | ||||||||
| NetMsmqBinding (netMsmqBinding) [net.msmq] |
MSMQ | Binary |
SOAP 1.2 |
.Net | None, Transport, Message, Both | – | No, Yes (OleTx) | N |
| A queued binding that is suitable for cross-machine communication between WCF applications. | ||||||||
| MsmqIntegrationBinding (msmqIntegrationBinding) |
MSMQ | * | – | MSMQ | None, Transport | – | No, Yes | N |
| A binding that is suitable for cross-machine communication between a WCF application and existing MSMQ applications. | ||||||||
*Doesn’t use a WCF message encoding – instead it lets you choose a pre-WCF serialization format
Notes: Items in bold are the defaults for features that have multiple values. “–“ = No Support
Abbreviations: WS-SC = WS-SecureConversation, WS-SP = WS-SecurityPolicy, WS-A = WS-Addressing, WS-AT = WS-AtomicTransaction, OleTx = OleTransactions
| Feature | Description |
| Name | The name of the binding. |
| Config Name | The name of the binding used in configuration such as app.config or web.config. |
| Scheme | The supported Uri schemes. |
| Transport | The supported types of message transport (similar to Providers in Remoting). |
| Message Encoding | The supported types of message encoding. |
| Message Version | The supported message versions. |
| Interop | Names the protocol or technology with which the binding ensures interoperation. |
| Security | Specifies how the channel is secured:
|
| Session | Specifies whether this binding supports session contracts. |
| Transaction Flow | Specifies whether transactions are enabled and the transaction flow type in (). |
| Duplex | Specifies whether duplex contracts are supported. Note this feature requires support for Sessions in the binding. |
Posted in .Net, Wcf | 1 Comment »












