WCF manage session by creating the instance of the service class. These created instance(s) handle the incoming service request. In WCF, session is the way of managing the services instance(s) so that server can used these instances in an optimized way. At server side InstanceContext class is used to manage service class instance.
In WCF, there are three Instance Management way as given below:
In this way, each request is served by a new service instance. It means a new service instance is created for each request and destroyed after the request is served.
This make your WCF service stateless means you can’t maintain states between WCF calls.
In this way, each and every client requests are served by a new single service instance. It means a new service instance is created for a client all requests and destroyed after the client finished its activity.
This way make your WCF service state-full means you can maintain states between WCF calls.
In this way, all clients’ requests are served by a single service instance. It means a single service instance is created to handle all the clients’ requests and never destroyed after serving the request.
This makes your WCF service data shared globally.
How WCF Session is different from Asp.Net Session?
WCF Session management is different from Asp.Net Session Management in the following ways:
WCF Sessions are created and terminated by service client.
Server use session to manage service instances, not to store some general data like Asp.Net.
WCF Session does not mainly rely on Session ID like Asp.Net, a particular field with in the header or body of a group of messages can also be considered as a part of session.
There may be different Session ID at client and server side unlike Asp.Net.
What do you think?
I hope you will enjoy the tips while programming with WCF. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.