In this article I will discuss about the various WCF bindings and associated behaviours. In one of my article I have discussed how we can create self hosted WCF service in C# . In that project I have used basicHttpBinding to communicate between client and the host. If you want to know about the WCF proxy class, you can read this article .
Before starting to compare different type of binding, you should be aware of binding itself.
What is a binding?
Please note the below important point about the bindings-
- Bindings provide the transport mechanism for the service. And it turns helps the message to travel between client and service.
- Binding decided how the service is going to communicate.
- Each service endpoint is associated with a binding
- WCF is a unified programming model. It encapsulates various technologies to perform tasks. Just with changing the configuration files we can simply achieve the ways in which services interact.
- Each binding has its own characteristics which included transport protocol, message encoding format and other messaging protocols for the communication channel.
WCF Bindings Present in WCF
WCF Bindings can be set declarative in the App.config file or in the .cs file using the class instance. The benefit of the setting the bindings in the app.config is that there is not need to recompile the solution if we want to change it.
Mentioned below are the binding types of WCF –
BasicHttpBinding supports SOAP 1.1
WSHTTPBinding, WSDualHttpBinding supports SOAP 1.2
Travel on port 80 and through firewall. They are clear bindings.
They are not encrypted.
Interoperable with other platforms.
HttpBinding is not secure by default while WSHttpBinding is secure
Connection Oriented for communication across process and machines
They are very fast and secure
Used inside a firewall
Supports two way interprocess communication both locally and remotely
NetNamedPipeBinding is the class
Limited to single machine
Both TCP and IPC binding supports binary message encoding.
Non reliable but faster than TCP
Limited to subnet without bridging
Need to use its own api i.e. System.Messaging api
Can work disconnected
Use WCF services that travel through queuing technology
In this article I have discussed WCF bindings and their types. Based on these comparison we can decide on what type of binding we should use for our WCF service.