WCF 消息检查器

本文关键字:检查 消息 WCF | 更新日期: 2023-09-27 17:55:22

我们有一个遗留的中间件应用程序,我们希望为它实现 WCF 适配器。 假设我们暂时只使用 WCF 服务。 中间件能够处理 XML 消息。 我们希望从中间件获取消息 XML,并将其转发到 WCF 客户端。 得到响应后,我们希望用响应 XML 回复中间件。

以下是我们希望调查的一些问题。

  1. 我们应该能够发送原始 XML 而不是基于对象的 WCF 调用
  2. 在 WCF 的所有层之后收到 XML(这很重要,因为 XML 本身的验证应该已经根据协定执行),我们将它转发给中间件。
  3. 我们的中间件实现了经典的Web服务,但数据合约序列化程序存在各种问题。 其中之一是对象引用。 正如我们已经看到的那样,对象的引用是通过在 XML 元素中使用 id 属性来保留的。 我们怎么能迎合呢。 对于数据协定序列化程序,我们是否可以考虑任何其他事情。
  4. 中间件关注的是原始消息本身。 我们希望其他与消息相关的属性(如 SOAP、WS-Security 等)由 WCF 代理本身处理。
  5. 有没有人知道WCF的Biztalk适配器是如何工作的

任何反馈将不胜感激。

WCF 消息检查器

1)你正在寻找的东西被称为POX(普通的旧XML)。WCF 使用 WebHttpBinding 支持此功能。这是一个很好的起点。

严格来说,这不是"原始 XML",因为 WCF 决定发送什么,但结果是纯 XML 文档,而不是 SOAP 消息。如果即使使用 POX 之类的内容也无法让 WCF 发送所需的内容,那么跳过该组件的 WCF 并简单地打开中间件层的套接字并直接发送 XML 可能更有意义。在这种情况下,您确实可以准确地发送旧版中间件应用程序所期望的内容。WCF 仍然可以处理面向客户端的连接。

2) 如果客户端有一个 WCF 服务,

WCF 将分析客户端消息,并在代码中为您提供某种对象(取决于服务协定)。此时,由 WCF 服务代码决定是使用另一个 WCF 连接来联系中间件,还是如我所述打开套接字并发送必要的请求。但是,在您的服务方法开始之前,已经为您完成了 WCF"内容"。

4)这应该没有问题。WCF 和您的代码将在向中间件发送任何内容之前处理这个问题。

希望这有所帮助。 :)