Windows Azure MessageLockLostException

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

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

我已将队列设置为ReceiveMode.PeekLock

我也检查一下

 if(message.LockedUntilUtc.Minute <= 1) message.RenewLock(); 

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

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

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