【发布时间】:2014-11-22 07:04:26
【问题描述】:
我们计划使用 WCF 路由服务。
假设我们有两个队列 (q1, q2),路由服务从 q1 获取消息,将其转发给请求-回复服务,一旦路由服务收到响应,它会再次将其转发给 q2。
我们现在被困在如何将响应转发到另一个队列上,这是 WCF RoutingService 中可能的用例吗?
提前感谢您的帮助。
【问题讨论】:
标签: c# .net wcf wcf-routing
我们计划使用 WCF 路由服务。
假设我们有两个队列 (q1, q2),路由服务从 q1 获取消息,将其转发给请求-回复服务,一旦路由服务收到响应,它会再次将其转发给 q2。
我们现在被困在如何将响应转发到另一个队列上,这是 WCF RoutingService 中可能的用例吗?
提前感谢您的帮助。
【问题讨论】:
标签: c# .net wcf wcf-routing
路由服务使用 MessageFilter 定义来定义消息交换的特定属性,例如地址、端点名称,甚至是基于内容的完整路由的特定 XPath 语句。
以下 MSDN 链接提供了路由服务消息过滤器定义的全面概述:
http://msdn.microsoft.com/en-us/library/ee517424.aspx
【讨论】:
如果我理解正确,则无法实现您想要做的事情。
路由器可以接收消息A并将其转发给req-reply服务,称为服务B。它也可以从服务B接收响应,然后将响应作为异步消息转发为 C 服务。
但是,路由器无法根据来自服务 B 的响应内容向服务 C 发送消息 A,因为此时来自服务 B(而不是消息 A)的响应将是当前正在处理的消息。
我理解正确吗?
【讨论】:
我开始探索IOperationInvoker在实际调用之前拦截操作
我有一个类似的场景要处理,任何关于您如何解决问题的指示将不胜感激。
最好的选择是“RoutingService”不是一个密封的类 - 这样,我们可以创建自己的服务并实现我们想要的合同并覆盖操作。
【讨论】: