首页 > 解决方案 > 为什么我的消息总是传递到 Azure 服务总线中的死信队列?

问题描述

C# .NetCore 2.2 - Azure 服务总线 3.4.0

我在 Azure 服务总线中有 3 个具有相同属性的队列。在向这些队列发送消息时,其中一个队列中的消息总是被传递到死信队列,而其他 2 个队列接收活动消息。

我尝试过使用属性——增加 TTL、最大传递计数等。所有 3 个队列的属性都是相同的,唯一的区别是队列的名称。

我已经使用了本教程 - https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues

队列属性图像

静态异步任务 SendMessagesAsync(int numberOfMessagesToSend) {

try

{


    for (var i = 0; i < numberOfMessagesToSend; i++)

    {

        // Create a new message to send to the queue.

        string messageBody = $"Message {i}";

        var message = new Message(Encoding.UTF8.GetBytes(messageBody));

        Console.WriteLine($"Sending message: {messageBody}");

        // Send the message to the queue.
        await queueClient.SendAsync(message);
    }
}
catch (Exception exception)
{
    Console.WriteLine($"{DateTime.Now} :: Exception: {exception.Message}");
}

}

如何防止消息进入死信队列?为什么只有 1 个队列而不是其他 2 个队列会发生这种情况?

标签: azureazureservicebusazure-servicebus-queues

解决方案


当消息是死信时,添加用户属性是有原因的。检查该属性以查看原因并相应地进行故障排除。具体来说,检查DeadLetterReasonDeadLetterErrorDescription自定义属性。


推荐阅读