4

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

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

在 Visual Studio Server Explorer 中,我在队列下看到了这个:

  • EnableDeadLetteringOnMessageExpiration: False

但我也看到了这个:

  • 死信消息数:16

我不能像往常一样把它们拉出来,所以我创建了一个临时服务来处理(摆脱)这些,这就是我能够从brokeredMessage.Properties

  • DeadLetterReason: MaxDeliveryCountExceeded
  • DeadLetterErrorDescription:10 次传递尝试后无法使用消息。

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

我在看什么?

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

4

1 回答 1

2

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

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

于 2015-01-29T00:50:19.300 回答