I have built a WCF load balancer/router to conditionally route any one way service to multiple endpoints all using MSMQ bindings. I have also created a host that uses all the endpoints from the router to accept the service calls. All the endpoint specifies the same contract.
I need each queue (endpoint) to be processed concurrently but each service call to be processed sequentially.
I’ve tried using InstanceContextMode = InstanceContextMode.Single and ConcurrencyMode = ConcurrencyMode.Single but this only gives me single instance processing all of my endpoints. InstanceContextMode = PerCall does not guarantee ordering which I need.
What I need is a single service instance per endpoint that will run concurrently.
I’ve also tried various permutations using the ServiceBehavior of ReleaseServiceInstanceOnTransactionComplete = true/false.
How would I accomplish this with WCF using MSMQ bindings?