Microsoft.Azure.ServiceBus: 提供的锁无效。锁已过期,或者消息已从队列中删除

Microsoft.Azure.ServiceBus: The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue

我有一个服务总线主题触发函数,每当将某些数据推送到主题时就会触发该函数。

函数看起来像这样:

[FunctionName("funcGetServiceBusEntities")]
public async Task Run([ServiceBusTrigger("sbtopic", "sbsub", Connection = "ServiceBusConnectionString")]Message message, MessageReceiver messageReceiver, [DurableClient] IDurableOrchestrationClient starter, ILogger log)
{  
   // perform processing on the data

   //...

   //...

   // Complete since we don't want to process the message again
   await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);

   //...
}

我不确定为什么会出现此错误:

Microsoft.Azure.ServiceBus: The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. Reference:ab88d42f-5fed-4392-983a-921cc6eab776, TrackingId:7664c851-9f29-4b4f-a334-4038e0921810_B11, SystemTracker:sb-dev:Topic:sbtopic|sbsub, Timestamp:2020-03-31T12:09:32.

CompleteAsync的实现有错吗?

这就是你现在面临的情况:

请注意,触发后消息将被删除。所以你不需要标记它,也不用担心再次处理消息。它已被删除。