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

App Service使用Managed Identity时Azure Service Bus连接字符串的正确格式

问题原因

该报错是由于NServiceBus的Azure Service Bus Transport组件配置规则与Azure Functions原生SDK规则不一致导致:

  • Azure Functions的Service Bus绑定内置了对Authentication=ManagedIdentity后缀的连接字符串解析逻辑,因此可以正常使用该格式
  • NServiceBus的传输组件未兼容该连接字符串格式,托管身份模式下只要求传入Service Bus的完全限定命名空间,额外的认证参数会被判定为格式非法
解决方案

1. 调整连接字符串格式

直接保留Service Bus的端点地址即可,删除多余的认证参数:

"ConnectionString": "sb://MYNAMESPACE.servicebus.windows.net/"

2. 确认NServiceBus传输配置写法

如果你使用的是7.x及以上版本的NServiceBus.Azure.Transports.WindowsAzureServiceBus组件,配置示例如下:

// 直接从配置读取处理好的完全限定命名空间初始化传输
var transport = new AzureServiceBusTransport(Configuration["ConnectionString"]);
// 配置托管身份凭证
transport.CustomTokenCredential(new DefaultAzureCredential());
// 注册传输到端点配置
endpointConfiguration.UseTransport(transport);

如果你使用的是6.x及更低版本的传输组件,需先升级到最新稳定版后再按上述规则配置。

3. 验证托管身份权限

需要确保App Service启用的托管身份,在你的Azure Service Bus命名空间下被分配了足够的权限:

  • 基础收发需求:分配Azure Service Bus Data Sender + Azure Service Bus Data Receiver角色
  • 包含队列创建/删除等管理需求:额外分配Azure Service Bus Data Owner角色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:45:04