我们计划使用WCF路由服务。
想象一下,我们有两个队列(q1,q2),路由服务从q1接收消息,将其转发到请求 - 回复服务,一旦路由服务收到响应,它就会再次转发到q2。
我们现在被困在如何将响应转发到另一个队列,这是WCF RoutingService中可能的用例吗?
先谢谢你的帮助。
答案 0 :(得分:1)
路由服务使用MessageFilter定义来定义消息交换的特定属性,例如地址,端点名称,甚至是基于完整内容的路由的特定XPath语句。
以下MSDN链接提供了路由服务消息过滤器定义的全面概述:
http://msdn.microsoft.com/en-us/library/ee517424.aspx
答案 1 :(得分:0)
如果我理解正确,就无法实现你想做的事。
路由器可以接收消息A并将其转发到req-reply服务,称之为服务B.它还可以从服务B接收响应,然后将响应转发为异步消息服务C.
然而,路由器无法基于来自服务B的响应内容向服务C发送消息A,因为到那时服务B(而不是消息A)的响应将是正在处理的当前消息。
我理解正确吗?
答案 2 :(得分:0)
我开始探索IOperationInvoker以在实际调用之前拦截操作
我有类似的处理方式,任何有关如何解决问题的指示都将受到高度赞赏。
最佳选择是" RoutingService"不是密封的类 - 这样,我们可以创建自己的服务并实现我们想要的合同并覆盖行动。