c# - 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);
}
}
解决方案
尝试将您的消息绑定到消息类型而不是字符串
public async Task Run([ServiceBusTrigger("queue", Connection = "ConnectionString")] Message message, string id, MessageReceiver messageReceiver, FunctionContext executionContext)
消息具有属性 SystemPropertiesCollection并使用message.SystemProperties.LockToken
推荐阅读
- ruby - 如何使用 ruby 代码更改对字符串的 json 响应
- mysql - Mysql在终端MAC OS中更改secure_file_priv
- haskell - Abstract over lens type to provide better read-write control of properties
- azure - 无法获取 Azure 计费帐户 ID
- vba - 查找与不明确名称对应的所有电子邮件地址
- .net-core - devops 管道 yaml 忽略 DotNetCoreCLI@2 任务的失败测试
- javascript - 如何填充下拉列表,观察者返回的值?
- python - 让不和谐机器人说出服务器和频道名称的命令
- php - 如何从 phpmailer 中的输入中给出主题和正文消息
- javascript - 如何使用 jquery 在 id 中动态插入每个迭代的值?