【问题标题】:Error in Azure BizTalk Services reading XML message from a Service Bus QueueAzure BizTalk 服务从服务总线队列读取 XML 消息时出错
【发布时间】:2015-01-28 10:04:30
【问题描述】:

背景

  1. 我在 Azure 上创建了一个 Web 服务,它将接受一个事务,将其转换为 XML 消息(使用架构)并将其传递到 Azure 服务总线队列。

  2. 由于 BizTalk 服务无法对任何 XML 对象进行反序列化,我将 XML 对象反序列化为字符串,然后再将其移动到队列中。

  3. 队列上的所有配置看起来都很好,消息如下所示: <?xml version="1.0" encoding="utf-8"?> <QueueTransaction xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" TransactionID="1040" TransactionType="MyAirtimeTest1" Amount="123456" Status="NEW" TransactionDate="1/28/2015 12:00:00 AM" xmlns="http://MMBTService.TransactionSchema" />

  4. 我使用服务总线队列源、Xml One-Way Brodge 和单向外部服务端点创建了一个 BizTalk 服务消息流(端点是 WCF Web 服务)

  5. 我有两个模式,使用 MAP 将源 XML 数据映射到 Web 服务模式。

  6. 我选择了请求消息类型(源模式),只有验证设置为真,我禁用了 XMLTransform 中的所有 Enrich 和我的 MAP。

我收到错误

在我部署所有内容后,进入 BizTalk 服务上的跟踪,我收到以下错误:根级别的数据无效。第 1 行,位置 1。

我已经经历了几天,并检查了将消息反序列化到网桥配置的每一个小细节,但找不到问题。

任何建议或帮助将不胜感激。

【问题讨论】:

    标签: azure azure-servicebus-queues biztalk-services


    【解决方案1】:

    从问题描述来看,似乎是 UTF 编码问题。你在 Azure 服务总线队列中收到的消息采用 UTF-8 编码。但是,您创建的 Bridge 期望消息为 UTF-16 编码。

    为确保这是问题,您可以使用 Microsoft Guy S Paolo 开发的服务总线资源管理器检查 Azure 队列中收到的消息。您可以尝试将消息 UTF-8 to UTF-16 更改为相同的 Queue 并检查是否有效。

    希望对你有帮助。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 2017-11-01
      相关资源
      最近更新 更多