【发布时间】:2019-02-09 15:41:55
【问题描述】:
我正在使用 GitHub 示例来处理某个主题的消息:
private void RegisterSubscriptionClientMessageHandler()
{
_subscriptionClient.RegisterMessageHandler(
async (message, token) =>
{
var eventName = $"{message.Label}{INTEGRATION_EVENT_SUFIX}";
var messageData = Encoding.UTF8.GetString(message.Body);
await ProcessEvent(eventName, messageData);
// Complete the message so that it is not received again.
await _subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
},
new MessageHandlerOptions(ExceptionReceivedHandler) { MaxConcurrentCalls = 10, AutoComplete = false });
}
所有订阅者都成功发送和接收所有消息,但是在命令中:
await _subscriptionClient.CompleteAsync(message.SystemProperties.LockToken);
总是出现以下错误:
ERROR ON ExceptionReceivedHandler EXEPTION: The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue, or was received by a different receiver instance.
Bazinga.EventBus.Bus.EventBusSubscription:Error: ERROR ON ExceptionReceivedHandler EXEPTION: The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue, or was received by a different receiver instance.
- Executing Action: UserCallback
关于如何解决的任何提示?谢谢!
【问题讨论】:
-
您确定邮件还在队列中吗?错误消息说队列中没有消息
-
@Jayendran - 谢谢,好问题:我怎样才能准确有效地验证这一点?
-
我已经提供了我的答案。此外,对于您的问题,您可以检查 Azure 门户以检查您的消息是否在队列/主题中(或者)您可以使用 Azure Service Bus Explorer 来验证
-
有什么更新吗?您是否发现该解决方案有用,然后投票/接受答案,以便对社区有所帮助
-
抱歉耽搁了......发布的解决方案都没有奏效。我仍然有同样的问题。我正在研究文档以试图找出我做错了什么。随时通知您。快乐编码 ;-)
标签: c# azure exception azureservicebus azure-servicebus-topics