Azure Service Bus消息已删除

时间:2018-05-24 06:51:48

标签: c# .net azure azureservicebus

我正在尝试使用CompleteAsync方法通过锁定令牌删除消息,但这并不总是有效。 Сan我通过消息标识符从主题Azure Service Bus中删除消息?

1 个答案:

答案 0 :(得分:0)

我认为您正在使用Microsoft.Azure.ServiceBus库执行消息传递操作。通过使用此库,您不能按消息标识符删除消息。要删除该消息,需要在每次执行Complete操作时传递LockToken,并且没有使用标识符获取消息的选项。

如果您想这样做,那么您应该首先获取消息,然后迭代每条消息,直到获得要搜索的消息为止。

我建议使用Windows.Azure.ServiceBus库,您可以在此处删除消息而无需传递任何令牌。此外,还可以选择使用消息序列号来接收消息。但是WindowsAzure.ServiceBus不支持.Net Core应用程序,但Microsoft.Azure.ServiceBus将支持。

 MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);

            queueClient = await factory.CreateMessageReceiverAsync(_entityPath, ReceiveMode.PeekLock);

           BrokeredMessage _message = await queueClient.ReceiveAsync(sequenceNumber);
           await _message.CompleteAsync();