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

Service Bus Explorer连接Service Bus模拟器失败问题排查

Service Bus模拟器无法通过Service Bus Explorer连接的问题排查

一、连接字符串中的UseDevelopmentEmulator=true参数不兼容容器版模拟器

UseDevelopmentEmulator=true是专门给Windows原生Service Bus模拟器设计的配置参数,容器版模拟器并不支持这个参数。Service Bus Explorer会识别该参数,错误地尝试连接Windows本地的模拟器服务,而非你Docker容器内的实例,这是导致连接失败的核心原因。

解决办法:

  • 从连接字符串中删除;UseDevelopmentEmulator=true段,修改后的连接字符串示例:
    Endpoint=sb://localhost:5672;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<key>;
    

二、协议与端口不匹配问题

容器暴露的是非TLS加密的AMQP端口5672,但Service Bus Explorer默认会优先尝试使用TLS加密的AMQP(5671端口)连接,即使连接字符串指定了5672,工具也可能忽略端口强制走TLS链路。

解决办法:

  • 在连接字符串末尾添加参数,强制指定非TLS传输:
    Endpoint=sb://localhost:5672;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<key>;AmqpTransportType=AmqpTcp;EnableSslStream=false;
    
  • 或者在Service Bus Explorer的连接设置中手动调整:
    • 点击连接窗口的「Advanced」按钮
    • 将「AMQP Transport Type」设置为「AmqpTcp」
    • 取消勾选「Enable SSL」选项

三、WSL与Windows的网络映射问题

你在Windows上运行Service Bus Explorer,而Docker容器部署在WSL Ubuntu环境中,Windows系统的localhost不会直接映射到WSL的本地网络。代码能正常连接是因为代码大概率运行在WSL内部,可直接访问容器网络,而Windows端工具需要指向WSL的实际IP。

解决办法:

  • 在WSL终端执行hostname -I,获取WSL的IP地址(类似172.18.0.1)
  • 将连接字符串中的localhost替换为该IP,示例:
    Endpoint=sb://172.18.0.1:5672;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<key>;
    

四、容器配置与兼容性检查

  1. 验证容器配置文件:检查挂载的./.azureservicebus/config.json,确保AmqpSettings下的Port设置为5672,且未强制启用SSL;若有修改,执行docker-compose restart azure-service-bus重启容器。
  2. 工具版本适配:旧版本Service Bus Explorer对容器版模拟器支持不佳,建议使用最新版本;也可改用Azure CLI命令行工具查看消息,示例命令:
    az servicebus subscription show-messages --namespace-name <你的命名空间> --topic-name <你的主题> --name <你的订阅>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:03:21