Azure 函数无法将参数“messageReceiver”绑定到类型“Microsoft.Azure.ServiceBus.Core.MessageReceiver”

Posted

技术标签:

【中文标题】Azure 函数无法将参数“messageReceiver”绑定到类型“Microsoft.Azure.ServiceBus.Core.MessageReceiver”【英文标题】:Azure Function Can't bind parameter 'messageReceiver' to type 'Microsoft.Azure.ServiceBus.Core.MessageReceiver' 【发布时间】:2021-12-30 05:39:10 【问题描述】:

升级到 Microsoft.Azure.ServiceBus v5.2.0 MessageReceiver 不再工作。

MessageReceiver messageReceiver

Microsoft.Azure.WebJobs.Host:索引方法错误 '布鲁内尔WMSServiceBus'。 Microsoft.Azure.WebJobs.Host:无法绑定 要键入的参数“messageReceiver” 'Microsoft.Azure.ServiceBus.Core.MessageReceiver'。

根据doc,MessageReceiver 仍受支持,但它不再在运行时工作。我看过对参数命名的引用,但messageReceiver 显然没问题。

ServiceBusMessageActions messageActions

有效,但必须称为messageActions,否则它也将无法绑定。只是想知道是否停止使用MessageReceiver 并改用ServiceBusMessageActions

【问题讨论】:

你可以参考GitHub上的类似问题:Microsoft.Azure.WebJobs.Host: Error indexing method 'XXX'. Microsoft.Azure.WebJobs.Host: Can't bind parameter 'messageReceiver' to type 'Microsoft.Azure.ServiceBus.Core.MessageReceiver'. 【参考方案1】:

它尚未添加到规范中,但显然不应再使用 IMessageReceiver,因为它属于 Microsoft.Azure.ServiceBus 库,该库已被 Microsoft.Azure.WebJobs.Extensions.ServiceBus SDK 弃用且不再引用。所以ServiceBusMessageActions messageActions参数绝对是现在要走的路。

https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus#message-settlement

【讨论】:

以上是关于Azure 函数无法将参数“messageReceiver”绑定到类型“Microsoft.Azure.ServiceBus.Core.MessageReceiver”的主要内容,如果未能解决你的问题,请参考以下文章

无法将 Azure 函数添加为流分析作业输出

将参数从逻辑应用电子邮件触发器传递到 azure 函数 http 触发器问题

Azure(函数)参数在 Python 中声明,但不在 function.json 中

将 JSON 对象映射到 Azure 函数 API 请求类参数中的类

Azure 函数:如何将 http 触发器函数的查询字符串参数绑定到 Cosmos DB 的 SQL 查询

Azure Function Runtime 版本:2.0.11888.0(测试版)无法连接到 cosmosDB