Azure WebJobs ServiceBusTrigger绑定ServiceBusReceivedMessage参数报错求解
解决方案
常见原因及修复步骤
- Nuget包版本不兼容
你使用的ServiceBusReceivedMessage、ServiceBusMessageActions属于Azure.Messaging.ServiceBus新SDK的类型,仅在Microsoft.Azure.WebJobs.Extensions.ServiceBus5.0.0及以上版本的扩展包中支持。请检查包版本,升级到最新稳定版即可,同时卸载项目中残留的旧版Microsoft.Azure.ServiceBus包,避免类型冲突。 - 参数顺序错误
ServiceBusTrigger特性标记的第一个参数必须为消息主体类型,你当前代码中将deliveryCount放在了第一个参数位置,导致绑定失败,调整参数顺序即可:[FunctionName("SendRegisteredUserVerificationEmailsServiceBusTrigger")] public async Task SendRegisteredUserVerificationEmailsServiceBusTrigger( [ServiceBusTrigger(BookStoreServiceBusQueueNames.RegisteredUsers, Connection = "AzureWebJobsServiceBusConnectionString", IsSessionsEnabled = false)] ServiceBusReceivedMessage message, Int32 deliveryCount, DateTime enqueuedTimeUtc, ServiceBusMessageActions messageActions) { // 业务逻辑 } - 运行模型不匹配
你当前的绑定写法仅支持进程内(In-Process)运行的WebJobs,如果你使用的是隔离进程(Isolated Worker)模型,不支持直接绑定这两个类型,请切换为进程内模型,或改用字符串、自定义类等通用类型接收消息内容。 - 扩展方法命名空间错误
确认Program.cs中调用的AddServiceBus()方法来自Microsoft.Azure.WebJobs命名空间,避免引用其他命名空间下的同名方法导致扩展注册失效。
内容的提问来源于stack exchange,提问作者Teoman shipahi
相关产品推荐
相关产品推荐

