1

背景

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

  2. 由于 BizTalk Services 无法对任何 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 单向 Brodge 和单向外部服务端点创建 BizTalk 服务消息流(端点是 WCF Web 服务)

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

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

我收到的错误

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

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

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

4

1 回答 1

0

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

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

希望能帮助到你。

谢谢

于 2015-08-21T04:47:03.977 回答