Azure BizTalk服务从服务总线队列读取XML消息时出错

Azure BizTalk服务从服务总线队列读取XML消息时出错,azure,azure-servicebus-queues,biztalk-services,Azure,Azure Servicebus Queues,Biztalk Services,背景 我在Azure上创建了一个web服务,它将接受一个事务,将其转换为XML消息(使用模式),并将其传递到Azure服务总线队列 由于BizTalk Services无法反序列化任何XML对象,因此在将XML对象移动到队列之前,我将其反序列化为字符串 队列上的所有配置看起来都很好,消息如下所示: 我使用服务总线队列源、Xml单向Brodge和单向外部服务端点(端点是WCF Web服务)创建BizTalk服务消息流 我有两个模式,使用一个映射将源XML数据映射到Web服务模式 我选择了请求消

背景

  • 我在Azure上创建了一个web服务,它将接受一个事务,将其转换为XML消息(使用模式),并将其传递到Azure服务总线队列

  • 由于BizTalk Services无法反序列化任何XML对象,因此在将XML对象移动到队列之前,我将其反序列化为字符串

  • 队列上的所有配置看起来都很好,消息如下所示:
    
    

  • 我使用服务总线队列源、Xml单向Brodge和单向外部服务端点(端点是WCF Web服务)创建BizTalk服务消息流

  • 我有两个模式,使用一个映射将源XML数据映射到Web服务模式

  • 我选择了请求消息类型(源模式),仅验证设置为True,我在XMLTransform中禁用了所有的Enrich和my映射

  • 我收到的错误

    在我部署了所有内容并开始跟踪BizTalk服务后,我得到以下错误:根级别的数据无效。第1行,位置1。

    我已经研究了几天了,检查了将消息反序列化到桥配置中的每一个细节,但没有发现问题


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

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

    为了确保这是一个问题,您可以使用Microsoft Guy S Paolo开发的服务总线浏览器检查Azure队列中接收的消息。您可以尝试将消息UTF-8更改为UTF-16,以将其更改为同一队列,并检查其是否有效

    希望能有帮助

    谢谢