3. BINDING
How Client Will Communicate with a service. A Service
may have multiple bindings define the shape ,security
etc…
4. • basicHttpBinding:
This binding uses HTTP as the transport and text/XML as the default message
encoding . Security disabled by default . It is fairly weak in interoperability.
• wsHttpBinding:
Defines a secure , reliable , interoprable binding suitable for non-duplex
service contracts . It uses HTTP and HTTPS transport for communication . Reliable
sessions are disabled by default . It supports WS-* functionality and distributed
transactions with reliable and secure sessions using SOAP security.
• netTcpBinding
This binding provides secure and reliable binding environment for .Net to .Net
cross machine communication . By default it creates communication stack using WS-
Reliable Messaging 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.
Types of Bindings
5. Types of Bindings
• netNamedPipeBinding:
This binding provides secure and reliable binding environment for non-
machine cross process communication . It uses NamedPipe protocol and provides full
support for SOAP security , transaction and reliability . NamedPipes for message
delivery and binary encoding.
• 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.
• netMsmqBinding:
Queuing is provided by using MSMQ as transport. It enables for disconnected
operations, failure isolation and load leveling.
6. Binding In Configuration
Service
EndPoint
Establishing the connection between client and service.
<system.serviceModel>
<services name=“serviceName” behaviorConfiguration=“”>
……write here endpoint tags
<services> </system.serviceModel>
Endpoints Provide Client access to the functionality by a WCF
Service. Each endpoint is a portal for communicating with the
world/service.
<endpoint address=“url/protocol” binding=“Client-communication
-type” Contract=“operations available/Service”
BehaviorConfiguration=“Service behaviorConfiguration”
BindingConfiguration=“Data-binding”/>
7. Binding In Configuration
Behavior
Binding
Common behaviors affect all endpoints globally ,
service/endpoint/operation behaviors affects only as their related
aspects only.
<behaviors> <behaviors>
<serviceBehavior> <endpointBehavior>
<behavior name=“”> <behavior name=“” >
<webHttp/> </behavior> <webHttp/></behavior>
</serviceBehavior></behaviors> </endpointBehavior></behaviors>
Binding Can be Configured either through Program or
Configuration file.
<bindings>
<basicHttpBinding>
<binding name=“service/endpointname” textEncoding=“utf-8”
openTimeout=“” closeTimeout=“”/></basicHttpBinding>
</bindings>
8. IIS(Internet Information Service):
If a service uses a Http as protocol .It does not requires Host code to activate the
service, it automatically activates service code.
Features : Process recycling , idle shutdown , health Monitoring , message based activation.
Self-Hosting:
WCF service can be self hosted as console application , Win-Forms or WPF
application with graphical UI . Client and Service in the same Process
WAS Hosting:
Enable WCF for non-http protocols . It supports Windows Vista/Server-2008.
Windows Service Hosting:
The service will be hosted, when system starts . Process life-time of the service
can be controlled by Service Control Manager for windows service.
WCF Service Hosting &Consuming
9. Instance Management refers to the way a service handles a request
from a client . It is set of techniques WCF uses to bind Client request to
Service Instance , governing which service instance handles which client
request.
Per-Call-Service:
Service Instance will be created for each client request mode , It can
be disposed after response is sent back to the client.
Use:
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerCalll)]
Instance Management
10. Instance Management
• Per-Session-Service:
Here Logical Session between client and service will be maintained .
when the client creates new proxy to particular service instance, a dedicated
service instance will provided to the client. It is independent of all other instance.
Use:
[serviceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
11. Instance Management
Singleton:
All Clients are independently connected to the same single instance .
This singleton instance will be created when service is hosted and , it is disposed
when host shut down.
Use:
[serviceBehavior(InstanceContextMode=InstanceContextMode.Single)]
12. Exception Handling
FaultContract:
Unhandled exception are handled in a better way by making use of
FaultContract . Suppose the service i consumed is not working in the client
application . I want to know the real cause of the problem . This helps us to easy
identity , What error has occurred .
Use: [FaultContract(typeof(ExceptionFaultContract/Instance))]
try{
}
catch(Exception ex)
{
throw new FaultException<ExceptionFaultContract>(Instace of Object);
}