Azure服务总线触发的功能-绑定到MessageReceiver

时间:2020-01-16 17:40:45

标签: c# azure .net-core azureservicebus azure-servicebus-topics

我试图在Azure Service Bus触发函数中绑定到MessageReceiver,我的目标是处理死信队列消息并完成它们。

public static class Function1
{
    [FunctionName("Function1")]
    public static async Task Run([ServiceBusTrigger("<topicName>", "<subscriptionName>/$DeadLetterQueue", Connection = "connectionstring")]Message message,
        ILogger logger,
        MessageReceiver messageReceiver)
    {
        // TODO: Perform some actions

        await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);
    }

问题在于它无法绑定到消息接收器类。

Microsoft.Azure.WebJobs.Host:错误索引方法'Function1'。 Microsoft.Azure.WebJobs.Host:无法绑定参数“ receiver”以键入MessageReceiver。确保绑定支持参数类型。如果您使用绑定扩展(例如Azure存储,ServiceBus,Timer等),请确保已在启动代码中调用了扩展的注册方法(例如builder.AddAzureStorage(),builder.AddServiceBus( ),builder.AddTimers()等)。

我为什么绑定失败的任何想法?

1 个答案:

答案 0 :(得分:7)

我弄清楚出了什么问题。我使用' receiver '作为MessageReceiver的参数名称。原来,参数名称必须为“ messageReceiver ”。我所看的示例最初使用的是“接收器”,那么这也许已经改变了吗?