Windows Azure MessageLockLostException

Sty*_*les 9 c# azure azureservicebus azure-servicebus-queues

我遇到Azure消息总线队列问题.

我已经MessageLockLostException抛出并且请求操作没有在分配的超时00:01:10内完成.分配给此操作的时间可能是较长超时的一部分.

我把队列设置成了ReceiveMode.PeekLock.

我也检查一下

if(message.LockedUntilUtc.Minute <= 1)
    message.RenewLock();
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况,是什么导致锁定放弃?我从你收到的地方读到的地方默认为5分钟.这个过程通常需要更长的时间.我想更新锁,但这不太顺利.

ast*_*kov 17

LockDuration是队列的属性.您通常在创建队列时设置此项.这是Queue级别属性,无法在消息库中更改.你读过的,很可能是说这个持续时间不能超过5分钟.默认值为1分钟,这就是您遇到问题的原因.为什么你在70秒后面对它 - 我假设检查这个条件的逻辑每10秒执行一次.

因此,我建议您创建或修改您的队列以将LockDuration属性设置为5分钟.然后,在适当时处理您的消息的RenewLock.

  • 另请注意,从管理门户创建队列时的默认值为30秒. (2认同)
  • 作为看到此类错误处理主题的人的旁注。订阅者级别有一个锁定持续时间可以修复。 (2认同)