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

如何通过REST API向会话启用的Azure Service Bus主题传递SessionId?

如何通过Azure Service Bus REST API传递SessionId给启用会话的订阅

要解决会话启用的订阅拒收无SessionId消息的问题,你可以通过HTTP请求的**BrokerProperties请求头**传递SessionId,这是Service Bus REST API用于指定消息元数据的特殊头,文档未明确提及但确实支持该用法。

具体操作步骤:

  • 在POST请求的头信息中添加BrokerProperties字段,值为包含SessionId的JSON字符串,格式示例:{"SessionId": "你的会话ID"}
  • 确保该JSON字符串为UTF-8编码,同时请求的Content-Type与消息体格式匹配(如application/json或application/xml)

示例请求(curl)

curl -X POST "https://你的服务总线命名空间.servicebus.windows.net/你的主题名称/messages" \
  -H "Authorization: SharedAccessSignature sr=你的服务总线命名空间.servicebus.windows.net&sig=你的签名&se=过期时间戳&skn=SAS密钥名称" \
  -H "BrokerProperties: {\"SessionId\": \"session-001\"}" \
  -H "Content-Type: application/json" \
  -d "{\"content\": \"测试会话消息\"}"

注意事项

  • SessionId不能包含空格、控制字符等特殊字符,需符合Azure Service Bus的命名规则
  • 使用Postman等可视化工具时,BrokerProperties的值无需转义双引号,直接填写{"SessionId": "session-001"}即可
  • 发送到主题的消息必须携带SessionId,才能被启用会话的订阅正确接收,否则会被死信

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:24:54