I am developing a WCF service that has to process only one user request at a time. Other request has to be queued up and if the queue gets big then then other request are stored in the database and users are notified accordingly. I was able to get user queue by implementing service throttling in WCF but users gets request timed out error when the queue is long. For request throttling I used WCF service throttling on service contract 2.
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single)]
But for Service Contract 1, I have implemented
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Multiple)]
I tried counting the pending request from WCF throttling service, but it seems there is no such method that gives current queue list in WCF.
- Is there any method that can count the queue list in another service contract.
- Do I have to change my design to implement this flow in WCF service.
Under IIS manager, Application Pools -> Advanced Settings you can set the Queue length to something larger as needed: