You can see the [ServiceBehavior] attribute in your service implementation as it supports arguments to control how many instances are created and which thread model is used.
http://msdn.microsoft.com/en-us/library/cc681240.aspx
If you
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)] public class MyService : IMyService
your service will work as a singleton, but with several threads - up to the threshold set in the WCF configuration to call your methods. To make it work on only one thread and thus serialize incoming requests, set ConcurrencyMode.Single.
Alternatively, you can deploy a new instance of your service for each call:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)] public class MyService : IMyService
An instance will have access to it with only one thread. In fact, when you have InstanceContextMode.PerCall, then ConcurrencyMode is ignored because it is always "Single" and each instance is running in its own thread.
C. Lawrence Wenham
source share