我正在尝试从死信队列重新提交消息。
我可以在死信队列上重播消息,这很好。问题是我现在想从死信队列中删除它。
这是我正在尝试做的事情:
var subscription = "mySubscription";
var topic = "myTopic";
var connectionString = "connectionStringOnAzure";
var messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);
var messageReceiver = messagingFactory.CreateMessageReceiver(SubscriptionClient.FormatDeadLetterPath(topic, subscription), ReceiveMode.ReceiveAndDelete);
long messageSequenceNumber = 835;
var brokeredMessage = messageReceiver.Receive(messageSequenceNumber); // this part fails
// mark message as complete to remove from the queue
brokeredMessage.Complete();
我收到以下错误消息:
Microsoft.ServiceBus.Messaging.MessageNotFoundException : Failed to lock one or more specified messages. The message does not exist..TrackingId:ae15edcc-06ac-4d2b-9059-009599cf5c4e_G5_B15,TimeStamp:8/13/2013 1:45:42 PM
但是,我没有指定消息序列号,而是使用如下所示的 ReceiveBatch,这很好。
// this works and does not throw any errors
var brokeredMessages = messageReceiver.ReceiveBatch(10);
我错过了什么吗?还是有另一种重新处理死信并将其删除的方法?