是否可以保留然后将WCF消息转发到目标服务?

时间:2011-07-31 04:14:57

标签: wcf routing

我正在努力的目标是拥有一个WCF路由服务,它可以从客户端接收消息,将它们保存到某种类型的数据存储,然后处理/发送到它们的目标WCF服务。

需要考虑的事项:

  • 您可以使用ClientViaBehavior(概述herehere
  • 创建路由服务
  • ClientViaBehavior不能与basicHttpBinding一起使用,所以我需要使用wsHttpBinding(basicHttpBinding不会在消息上设置“To”标题,找出困难的方法)
  • WCF消息对象本身被发送到路由服务,在那里它可以作为序列化字符串保存
  • 我不希望路由服务知道邮件中的内容 - 因此,该服务不会引用所涉及的数据合同
  • 当需要将消息路由到目的地时,我需要能够在路由服务和目标服务之间创建一个通道
  • 路由服务不希望知道每个目标服务 - 理想情况下,WCF可以根据正在处理的消息的内容/标题动态创建适当的通道。

这对WCF要求太多了吗? (我感觉可能是......)

关于如何完成这样的事情的任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

如果您使用的是.NET 4(或者可以移动到它),WCF 4.0已经引入了自己的RoutingService基础结构。

在重新发明轮子之前检查一下!

有关WCF 4中新功能(包括RoutingService)的详细介绍,请参阅A Developer's Introduction to Windows Communication Foundation 4

答案 1 :(得分:0)

是的,您可以让您的路由服务接受任何消息。

此链接可以帮助您:Building a WCF Router, Part 1