我在尝试使用服务总线触发功能时收到错误消息“无法转换输入参数”,为什么?

问题描述 投票:0回答:2

有没有办法创建需要

ServiceBusReceivedMessage
对象作为参数的 azure 函数?像这样:

[Function("Function1")]
public static void Run(
    [ServiceBusTrigger("...", "...", Connection = "...")] ServiceBusReceivedMessage  msg)

我为这个类创建了一些扩展方法,所以使用这个类对我来说会很有用。

我注意到本教程 Azure Functions 的 Azure 服务总线绑定

我正在使用 .net 5,并且已通过 nuget 包 Microsoft.Azure.WebJobs.Extensions.ServiceBus 安装了 beta-5 版本,但是当我尝试接收消息时,我看到此错误:

异常:Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException:转换函数“Function1”的 1 个输入参数时出错:无法将输入参数“msg”从类型“System”转换为类型“Azure.Messaging.ServiceBus.ServiceBusReceivedMessage” .字符串'.

不确定我是否错过了什么,或者是否有可能

c# azure azure-functions azureservicebus
2个回答
0
投票

Microsoft.Azure.WebJobs.Extensions.ServiceBus
版本 5 旨在与进程内 Functions SDK 配合使用。您的解决方案似乎使用功能隔离工作 SDK,目前不支持 SDK 类型


0
投票

我来这个帖子有点晚了,也刚刚遇到了这个问题。

对我来说,正确的解决方案是将 ServiceBusReceivedMessage 更改为 ServiceBusReceivedMessage[] 并在 ServiceBusTrigger 上设置“IsBatched = true”

是的,这是一个微小的变化,但我忽略了它好几个小时!

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.