Azure SB 队列将消息发送到禁用的死信队列

use*_*912 5 dead-letter azureservicebus azure-servicebus-queues

为什么我的 Azure 服务总线队列在未启用时将消息发送到死信子队列?

从一开始我就确保过期的消息不会被移动到死信队列(或者我是这么认为的)。

在 Visual Studio Server Explorer 中,我在队列下看到以下内容:

  • EnableDeadLetteringOnMessageExpiration:False

但我也看到了这一点:

  • 死信消息计数:16

我无法像平常一样将它们拉出来,所以我创建了一个临时服务来处理(摆脱)这些,这就是我能够从以下内容中提取的内容brokeredMessage.Properties

  • 死信原因:MaxDeliveryCountExceeded
  • DeadLetterErrorDescription:消息在 10 次传递尝试后无法使用。

我希望消息在未完成时保留在正常队列中。到目前为止,我已将 MaxDeliveryCount 更改为 1000,但这不是真正的解决方案。

我在忽略什么?

更新 在阅读我自己的文本后,我意识到 EnableDeadLetteringOnMessageExpiration 与传递计数无关。我是否可以选择让我的消息永远保留在正常队列中?或者我是否必须将 MaxDeliveryCount 设置为“足够高”?

mer*_*ert 3

我遇到过同样的问题。MaxDeliveryCount如果消息到达,即使您禁用它,消息也会被移至死信。您可能想要设置MaxDeliveryCount0停止int.MaxValue死信。

注意:此信息没有记录在任何地方。我通过找到专门从事 ServiceBus Queue 工作的人员来解决这个问题。