You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Logic Apps处理Service Bus XML消息报错求助

问题根源与解决方案

为什么会报错?

你现在的错误核心在于发送Service Bus消息时,错误地对整个Compose输出(一个包含$content-type和$content的JSON包装对象)做了Base64编码,而非提取里面真正的XML内容进行处理。

从你提供的MessageText能看到,接收端解码后得到的是一段JSON字符串(开头是[{"$content-type":...}]),但xml()函数要求输入纯XML格式的字符串——JSON的语法和XML完全不兼容,自然会触发“根级别的数据无效”的报错。


正确的操作步骤

1. 修正发送端的编码逻辑

你的Compose_first_XML_message输出已经是Logic Apps的标准内容包装结构:其中$content字段就是XML内容的Base64编码结果,$content-type是对应的类型标识。

你不需要对整个Compose对象二次Base64编码,直接提取$content的值赋值给ContentData即可:

"ContentData": "@{outputs('Compose_first_XML_message')['$content']}",
"ContentType": "application/xml"

2. 接收端逻辑无需修改(发送端修正后即可正常工作)

当发送端传递的是纯XML的Base64编码内容后,你原来的接收端代码就能正确解析XML了:

"content": "@{xml(base64toString(triggerBody()?['ContentData']))}"

验证小技巧

修正后可以用Service Bus Explorer检查消息:此时MessageText应该是纯XML明文(或Base64解码后为纯XML),而不是包含$content-type的JSON结构,这就说明发送逻辑已经正确了。

内容的提问来源于stack exchange,提问作者GATver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:12:37