Я создал балансировщик нагрузки / маршрутизатор WCF для условной маршрутизации любой односторонней службы на несколько конечных точек, используя привязки MSMQ. Я также создал хост, который использует все конечные точки маршрутизатора для приема вызовов службы. Все конечные точки определяют один и тот же контракт.
Мне необходимо обрабатывать каждую очередь (конечную точку) одновременно, но каждый вызов службы обрабатывать последовательно.
Я пытался использовать InstanceContextMode = InstanceContextMode.Single и ConcurrencyMode = ConcurrencyMode.Single, но это дает мне только один экземпляр, обрабатывающий все мои конечные точки. InstanceContextMode = PerCall не гарантирует заказ, который мне нужен.
Что мне нужно, так это один экземпляр службы на конечную точку, который будет работать одновременно.
Я также пробовал различные перестановки, используя ServiceBehavior, равный
ReleaseServiceInstanceOnTransactionComplete = true/false.
Как бы я сделал это с WCF, используя привязки MSMQ?