如何解决Azure Function调用Azure Service Bus时出现的provider is null错误
问题根源
你在ServiceBusTrigger特性中填写Connection参数的方式错误:该参数不需要传入完整连接字符串,只需传入配置文件中对应连接字符串的键名即可。你直接填入完整连接串后,运行时会把整段连接串当作配置键去查找对应配置,自然无法匹配到你写在配置文件里的项,就会触发当前报错。
修复步骤
1. 修改触发器配置
把函数代码中Connection参数的值改为你local.settings.json里配置的连接串键名AzureWebJobsAzureSBConnection,修正后的代码示例如下:
public static class Function1 { [FunctionName("ServiceBusQueueTriggerCSharp")] public static void Run( // 这里Connection填配置键名,不要填完整连接串 [ServiceBusTrigger("queue", Connection = "AzureWebJobsAzureSBConnection")] string message, ILogger log) { log.LogInformation($"C# ServiceBus queue trigger function processed message: {message}"); } }
注:原代码的触发器绑定参数缺少接收队列消息的变量,示例中补充了
string message参数,你可以根据业务需求调整消息接收的类型。
2. 确认配置项位置
你当前把AzureWebJobsAzureSBConnection放在local.settings.json的ConnectionStrings节点下是符合要求的,不需要调整配置内容,只要确保键名和代码里填写的完全一致即可。
内容的提问来源于stack exchange,提问作者Deepak Kothari
相关产品推荐
相关产品推荐

