Azure Function .Net 5 使用 ServiceBusTrigger [英] Azure Function .Net 5 Using ServiceBusTrigger

查看:29
本文介绍了Azure Function .Net 5 使用 ServiceBusTrigger的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将 .net 5 azure 函数与 ServiceBusTrigger 一起使用.在以前的版本中.我正在使用参数 MessageReceiver 告诉 azure 我完成了任务.为此,我使用了

I'm using .net 5 azure function with ServiceBusTrigger. In previous versin. I was using a parametr MessageReceiver to tell azure that I compleated task. For that I used

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

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

My problem is that i new version (.net5) unlike the previous version (.net core 3.1) is param in string (json) not in object (maybe it's the error but I don't know which object to use, object I tried was Microsoft.Azure.ServiceBus.Core.MessageReceiver).

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

But now i do not have the object so i can not call the method.

有人知道答案吗?感谢您抽出宝贵时间.

Does someone knows the answer? Thak you for your time.

我的代码示例:

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);
    }
}

推荐答案

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

Try to bind your message to Message type instead of string

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

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

这篇关于Azure Function .Net 5 使用 ServiceBusTrigger的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆