I need to create a WCF service that only allows a single client at a time. All other requests should be rejected, and the client must retry again later. The service will take around a minute to complete the request.
I've tried:
[ServiceBehavior(IncludeExceptionDetailInFaults=true,
InstanceContextMode=InstanceContextMode.Single,
ConcurrencyMode=ConcurrencyMode.Single)]
but if I request the service multiple times (using multiple threads) in a client, I get a timeout exception on the 3rd request, but the service does actually perform the 3rd requests processing!