如何从服务总线死信队列中读取消息?

时间:2020-04-07 04:51:28

标签: azure queue servicebus dead-letter

如何从服务总线死信队列中读取消息?我可以读取message-id和消息的序列号,但是我需要实际的消息。有人可以帮我弄这个吗?可以阅读实际的消息吗?

1 个答案:

答案 0 :(得分:0)

在阅读消息表单死信队列之前,您应该检查失败的原因是什么?如果某些服务不可用,则创建WebJob并尝试以下代码并处理消息。

public void GetDeadLetterMessagesAsync(string connectionString, string queueName)
    {
        var queueClient = QueueClient.CreateFromConnectionString(connectionString, QueueClient.FormatDeadLetterPath(queueName));
        while (true)
        {
            BrokeredMessage bmessgage = queueClient.Receive();
            if (bmessgage != null)
            {
                string msg = new StreamReader(bmessgage.GetBody<Stream>(), Encoding.UTF8).ReadToEnd();
                //Custom business logic to prcess your message
                bmessgage.Complete();
            }
            else
            {
                break;
            }
        }
    }

如果消息有问题,那么您应该在UI上阅读并显示消息,以便后台团队可以更正消息,否则它将再次失败。