我正在尝试使用CompleteAsync方法通过锁令牌删除消息,但这并不总是有效。通过消息标识符从主题Azure Service Bus中删除消息吗?Сan I delete message from topic Azure Service Bus by message identifier?
发布于 2018-10-05 13:37:23
我认为您正在使用Microsoft.Azure.ServiceBus库来执行消息传递操作。通过使用该库,您不能通过消息标识符来删除消息。要删除消息,需要在每次执行完成操作时传递LockToken,并且没有使用标识符获取消息的选项。
如果你想这样做,那么你应该首先得到消息,然后迭代每一个消息,直到你得到你要搜索的消息。
我建议,Windows.Azure.ServiceBus库,在这里你可以删除消息而不传递任何令牌。此外,还可以选择使用消息序列号来接收消息。但是WindowsAzure.ServiceBus不支持.Net核心应用,但Microsoft.Azure.ServiceBus会支持。
MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);
queueClient = await factory.CreateMessageReceiverAsync(_entityPath, ReceiveMode.PeekLock);
BrokeredMessage _message = await queueClient.ReceiveAsync(sequenceNumber);
await _message.CompleteAsync();https://stackoverflow.com/questions/50502787
复制相似问题