我已经构建了一个WCF负载均衡器/路由器,可以使用MSMQ绑定有条件地将任何单向服务路由到多个端点。我还创建了一个主机,它使用路由器的所有端点来接受服务调用。所有端点都指定相同的合同。
我需要同时处理每个队列(端点),但每个服务调用都要按顺序处理。
我尝试过使用InstanceContextMode = InstanceContextMode.Single和ConcurrencyMode = ConcurrencyMode.Single但这只能让我单个实例处理我的所有端点。 InstanceContextMode = PerCall不保证我需要的订购。
我需要的是每个端点的单个服务实例,它将同时运行。
我还尝试使用
的ServiceBehavior进行各种排列ReleaseServiceInstanceOnTransactionComplete = true/false.
如何使用MSMQ绑定使用WCF实现此目的?
答案 0 :(得分:1)
放置您的配置,以便更清晰一点。您还可以通过定义自己的同步上下文来控制WCF如何执行调用。我不得不为另一个项目而且我在本文中发布了代码
http://www.codeproject.com/KB/threads/SynchronizationContext3.aspx