首页 > 解决方案 > Azure Function .Net 5 使用 ServiceBusTrigger

问题描述

我正在使用带有 ServiceBusTrigger 的 .net 5 azure 函数。在以前的版本中。我正在使用参数 MessageReceiver 告诉 azure 我完成了任务。为此我使用

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

我的问题是我的新版本(.net5)与以前的版本(.net core 3.1)不同的是字符串(json)中的参数而不是对象(可能是错误但我不知道要使用哪个对象,我试过的对象是 Microsoft.Azure.ServiceBus.Core.MessageReceiver)。

但现在我没有对象,所以我不能调用该方法。

有人知道答案吗?谢谢你的时间。

我的代码示例:

Function("TasksFunction")]
public async Task Run([ServiceBusTrigger("queue", Connection = "ConnectionString")] string message, string id, MessageReceiver messageReceiver, FunctionContext executionContext)
{
    try
    {
        await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);
        await DoWorkAsync(messageReceiver, message);
    }
    catch (Exception e)
    {
        log.LogCritical(e);
    }
}

标签: c#.netazure-functions.net-5

解决方案


尝试将您的消息绑定到消息类型而不是字符串

public async Task Run([ServiceBusTrigger("queue", Connection = "ConnectionString")] Message  message, string id, MessageReceiver messageReceiver, FunctionContext executionContext)

消息具有属性 SystemPropertiesCollection并使用message.SystemProperties.LockToken


推荐阅读