0

我们计划使用 WCF 路由服务。

假设我们有两个队列(q1,q2),路由服务从 q1 中提取消息,将其转发给请求-回复服务,一旦路由服务收到响应,它会再次将其转发给 q2。

我们现在被困在如何将响应转发到另一个队列上,这是 WCF RoutingService 中可能的用例吗?

提前感谢您的帮助。

4

3 回答 3

1

路由服务使用 MessageFilter 定义来定义消息交换的特定属性,例如地址、端点名称,甚至是基于内容的完整路由的特定 XPath 语句。

以下 MSDN 链接提供了路由服务消息过滤器定义的全面概述:http:
//msdn.microsoft.com/en-us/library/ee517424.aspx

于 2013-10-29T10:41:14.073 回答
0

如果我理解正确,则无法实现您想要做的事情。

路由器可以接收消息 A 并将其转发到请求回复服务,称为服务 B。它还可以接收来自服务 B 的响应,然后将响应作为异步消息转发给服务 C。

但是,路由器无法根据来自服务 B 的响应内容向服务 C 发送消息 A,因为此时来自服务 B(而不是消息 A)的响应将是当前正在处理的消息。

我理解正确吗?

于 2014-06-15T20:54:29.903 回答
0

我开始探索IOperationInvoker在实际调用之前拦截操作

  • 此时,您可能必须手动建立到其他服务的渠道来收集您的信息。
  • 痛点可能是反序列化作为输入数组的一部分提供给调用者的消息对象。将您的对象转换回消息作为输出。
  • 处理异步场景。

我有一个类似的场景要处理,任何关于你如何解决问题的指针都将受到高度赞赏。

最好的选择是“RoutingService”不是一个密封的类——这样,我们可以创建自己的服务并实现我们想要的合同并覆盖操作。

于 2014-11-19T23:09:03.253 回答