In WCF, Binding describes how a client is going to communicate to WCF service. Binding is used as per client need. It supports different types of protocol to communicate with client and different types of encoding to transfer the data over the internet. So, basically binding is nothing but it is a way of communication between client and service as per client need. There are different types of bindings available in WCF.
- It is suitable for communicating with ASP.NET Web services (ASMX)-based services that comfort with WS-Basic Profile conformant Web services.
- This binding uses HTTP as the transport and text/XML as the default message encoding.
- Security is disabled by default.
- This binding does not support WS-* functionalities like WS- Addressing, WS-Security, WS-ReliableMessaging
- It is fairly weak on interoperability.
- Defines a secure, reliable, interoperable binding suitable for non-duplex service contracts.
- It offers lot more functionality in the area of interoperability.
- It supports WS-* functionality and distributed transactions with reliable and secure sessions using SOAP security.
- It uses HTTP and HTTPS transport for communication.
- Reliable sessions are disabled by default.
This binding is same as that of WSHttpBinding, except it supports duplex service. Duplex service is a service which uses duplex message pattern, which allows service to communicate with client via callback.
In WSDualHttpBinding reliable sessions are enabled by default. It also supports communication via SOAP intermediaries.
This binding support federated security. It helps implementing federation which is the ability to flow and share identities across multiple enterprises or trust domains for authentication and authorization. It supports WS-Federation protocol.
This binding provides secure and reliable binding environment for .Net to .Net cross machine communication. By default it creates communication stack using WS-ReliableMessaging protocol for reliability, TCP for message delivery and windows security for message and authentication at run time. It uses TCP protocol and provides support for security, transaction and reliability.
This binding provides secure and reliable binding environment for on-machine cross process communication. It uses NamedPipe protocol and provides full support for SOAP security, transaction and reliability. By default it creates communication stack with WS-ReliableMessaging for reliability, transport security for transfer security, named pipes for message delivery and binary encoding.
- This binding provides secure and reliable queued communication for cross-machine environment.
- Queuing is provided by using MSMQ as transport.
- It enables for disconnected operations, failure isolation and load leveling
- This binding provides secure binding for peer-to-peer environment and network applications.
- It uses TCP protocol for communication
- It provides full support for SOAP security, transaction and reliability.
- Always create the service with Interface->Implementation format, mention the contract in Interface.
- Define the service in Class library and refer the class library in Host project. Don’t use service class in host project.
- Change the instance mode to per call as default.
- Always catch exception using try/catch block and throw exception using FaultException < T >.
- Logging and Include exception should be enable while compiling the project in debug mode. While in production deployment disable the logging and Include exception details.