我已经构建了一个 WCF 负载平衡器/路由器,以有条件地将任何单向服务路由到多个端点,所有端点都使用 MSMQ 绑定。我还创建了一个主机,它使用路由器中的所有端点来接受服务调用。所有端点都指定相同的合同。
我需要同时处理每个队列(端点),但要按顺序处理每个服务调用。
我尝试过使用 InstanceContextMode = InstanceContextMode.Single 和 ConcurrencyMode = ConcurrencyMode.Single 但这只能让我使用单个实例来处理我的所有端点。InstanceContextMode = PerCall 不保证我需要的顺序。
我需要的是每个端点的单个服务实例,它将同时运行。
我还尝试了使用 ServiceBehavior 的各种排列
ReleaseServiceInstanceOnTransactionComplete = true/false.
我将如何使用 MSMQ 绑定通过 WCF 完成此任务?