背景
我在Azure上创建了一个Web服务,它将接受一个事务,将其转换为XML消息(使用Schema)并将其传递到Azure Service Bus Queue。
由于BizTalk Services无法对任何XML对象进行反序列化,因此在将其移动到队列之前,我将XML对象反序列化为字符串。
队列上的所有配置看起来都很好,消息如下所示:
<?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" />
我使用Service Bus Queue Source,Xml One-Way Brodge和One-Way External Service EndPoint(端点是WCF Web服务)创建BizTalk服务消息流
我有两个模式,使用MAP源XML数据到Web服务模式。
我选择了请求消息类型(源架构),只有Validate设置为True,我在XMLTransform中禁用了所有Enrich和我的MAP。
我收到的错误
在我部署了所有内容之后,我发现了对BizTalk Services的跟踪,我收到以下错误:根级别的数据无效。第1行,第1位。
我已经经历了几天了,并检查了将消息反序列化到桥接配置中的每个小细节,但找不到问题。
任何建议或帮助都将非常感激。
答案 0 :(得分:0)
从问题描述中看起来似乎是一个UTF编码问题。您在Azure Service Bus Queue中收到的消息采用UTF-8编码。但是,您创建的Bridge期望邮件为UTF-16编码。
要确保这是一个问题,您可以使用Microsoft Guy S Paolo开发的Service Bus Explorer检查Azure Queue中收到的消息。您可以尝试将消息UTF-8更改为UTF-16到同一个队列,并检查它是否有效。
希望它有所帮助。
由于