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

升级到.NET 6和Azure Function 4.0后NServiceBus UseTransport失效求助

根因说明

NServiceBus.AzureFunctions.InProcess.ServiceBus 适配 Azure Function 4.0 的版本已经内置了 Azure Service Bus 传输层的默认初始化逻辑,在启动类中重复调用UseTransport<AzureServiceBusTransport>()会导致内部服务注册冲突,FunctionEndpoint依赖的核心对象未被正确初始化,因此调用Process时抛出空引用异常。


解决步骤

  • 先确认所有 NServiceBus 相关依赖包已升级到适配 .NET 6 + Azure Function 4.0 的稳定版本,其中NServiceBus.AzureFunctions.InProcess.ServiceBus需使用 3.0 及以上版本。
  • 将启动类中原有的UseTransport相关代码替换为ConfigureTransport方法调整传输配置,同时开启安装器实现拓扑自动搭建,示例代码如下:
// 开启安装器,NServiceBus启动时会自动创建队列、订阅等传输层拓扑资源
configuration.AdvancedConfiguration.EnableInstallers();

// 调整已内置注册的Azure Service Bus传输配置,无需重复调用UseTransport
var transport = configuration.AdvancedConfiguration.ConfigureTransport<AzureServiceBusTransport>();
// 若需自定义连接字符串可保留该行,默认配置会自动读取AzureWebJobsServiceBus对应的连接字符串
transport.ConnectionString(@"AzureWebJobsServiceBus".GetConfig());
  • 验证功能:启动项目后确认对应 Service Bus 的队列、主题等拓扑资源已自动创建,发送测试消息调用functionEndpoint.Process确认无空引用异常且消息可正常处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:15:11