【问题标题】:Is it possible to persist and then forward WCF messages to destination services?是否可以保留 WCF 消息然后将其转发到目标服务?
【发布时间】:2011-07-31 04:14:56
【问题描述】:

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

需要考虑的事项:

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

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

任何关于如何完成这样的事情的建议将不胜感激。

【问题讨论】:

    标签: wcf routing


    【解决方案1】:

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

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

    请参阅 A Developer's Introduction to Windows Communication Foundation 4,了解 WCF 4 中的新功能(包括 RoutingService)的一般介绍

    【讨论】:

      【解决方案2】:

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

      此链接应该对您有所帮助:Building a WCF Router, Part 1

      【讨论】:

        猜你喜欢
        • 2019-09-30
        • 1970-01-01
        • 1970-01-01
        • 2023-02-26
        • 2019-01-23
        • 1970-01-01
        • 1970-01-01
        • 2013-07-06
        • 2023-04-03
        相关资源
        最近更新 更多