WCF路由服务,对另一个服务的转发响应

问题描述:

我们计划使用WCF路由服务。假设我们有两个队列(q1,q2),路由服务从q1接收消息,并将其转发给请求应答服务,一旦路由服务接收到响应,它就会再次转发给q2。WCF路由服务,对另一个服务的转发响应

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

在此先感谢您的帮助。

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

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

+0

那么这如何帮助OP解决他们的问题? –

如果我理解正确的话就没有办法达到你想要做什么。

路由器可以接收消息A并将其转发到req-reply服务上,称之为服务B.它也可以接收来自服务B的回应,然后将作为异步消息的响应转发给服务C.

然而,路由器根据来自服务B的响应内容将消息A发送到服务C是没有办法的,因为到那时服务B(而不是消息A)的响应将是当前正在处理的消息。

我理解正确吗?

我开始探索IOperationInvoker拦截操作之前,它实际上是调用

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

我有一个类似的场景来处理和任何指针如何解决你的问题将不胜感激。

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