MSMQ バインディングをすべて使用して、条件付きで一方向サービスを複数のエンドポイントにルーティングする WCF ロード バランサー/ルーターを構築しました。また、ルーターからのすべてのエンドポイントを使用してサービス呼び出しを受け入れるホストも作成しました。すべてのエンドポイントが同じコントラクトを指定します。
各キュー (エンドポイント) を同時に処理する必要がありますが、各サービス呼び出しは順次処理する必要があります。
InstanceContextMode = InstanceContextMode.Single および ConcurrencyMode = ConcurrencyMode.Single を使用してみましたが、これにより、すべてのエンドポイントを処理する単一のインスタンスしか得られません。InstanceContextMode = PerCall は、必要な順序を保証しません。
必要なのは、同時に実行されるエンドポイントごとに 1 つのサービス インスタンスです。
また、 ServiceBehavior を使用してさまざまな順列を試しました
ReleaseServiceInstanceOnTransactionComplete = true/false.
MSMQ バインディングを使用して WCF でこれを達成するにはどうすればよいですか?