Home > WCF > WCF # 12 – WCF Bindings and Choosing an Appropriate Binding

WCF # 12 – WCF Bindings and Choosing an Appropriate Binding

Hi Friends,

WCF Binding is the way which defines how communication is going to take place in between client and the hosted service using endpoints.

* Bindings are used to specify the transport, encoding, and protocol details required for clients and services to communicate with each other.

* A binding is made up of a collection of binding elements.                                                    Each element describes some aspect of how the endpoint communicates with clients.

Note -  A binding must include

i) at least one transport binding element,                                                                                

ii) at least one message-encoding binding element (which the transport binding element can provide by default),

iii) any number of other protocol binding elements. The process that builds a runtime out of this description allows each binding element to contribute code to that runtime.

WCF supports following types of bindings          

1) BasicHttpBinding
  • It is suitable for communicating with ASP.NET Web services (ASMX)-based services that comfort with WS-Basic Profile conformant Web services.
  • It supports SOAP 1.1 as a messaging protocol
  • 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
2) WSHttpBinding
  • 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.
3) WSDualHttpBinding

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.

4) WSFederationHttpBinding

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.

5) NetTcpBinding

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.

6) NetNamedPipeBinding

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.

7) NetMsmqBinding
  • 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
8) NetPeerTcpBinding
  • 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.

Choosing an Appropriate Binding

The approach used to choose a binding is to examine the features your application needs and determine a binding that matches those requirements.

Following table compares features of each preconfigured binding so you can select the binding based on your requirements.

There are many features,including interoperability, durability, reliability, and transactions.

For example, if your application needs to communicate over an unreliable network,such as a wireless network connection, you might want a binding that supports reliable sessions (RS).



The following diagram shows a process you might use to select a binding.




Hope this will help you.

Categories: WCF
  1. December 7, 2012 at 1:46 am

    Greetings I am so grateful I found your web site, I really found you by
    accident, while I was browsing on Digg for something else, Regardless
    I am here now and would just like to say thanks a lot for a remarkable post and a all round enjoyable blog (I
    also love the theme/design), I don’t have time to go through it all at the moment but I have bookmarked it and also added
    in your RSS feeds, so when I have time I will be back to read more,
    Please do keep up the fantastic work.

  2. December 18, 2012 at 11:05 pm

    This would help you to decide the kind of an accessory you should get.

    A status symbol and a nice distinction for the hardcore connoisseur.
    Doing so will immediately take away from its originality.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: