azure - 为什么我的消息总是传递到 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 个队列会发生这种情况?
解决方案
当消息是死信时,添加用户属性是有原因的。检查该属性以查看原因并相应地进行故障排除。具体来说,检查DeadLetterReason
和DeadLetterErrorDescription
自定义属性。
推荐阅读
- sas - SAS %DO %UNTIL 比较两个变量
- python - 使用带有 re 的列表(或如何删除可能密码子列表之间的子字符串)
- r - 如何在 r 中为 tslm 构建预测模型
- javascript - 第三方代码阻塞了主线程——Defer和Async都解决不了
- flutter - 应用程序在使用 Firebase 的 Flutter (iOS) 上启动时关闭,没有给出任何错误
- c++ - C++20 views::join 在生成的嵌套范围内进入无限循环::single_view
- node.js - 猫鼬钩子中的 AsyncLocalStorage 松散上下文 POST 保存
- java - 如何在实时 Firebase 数据库中保存上传图片的完美 url-link?
- jquery - JavaScript 选择器:如何找到下一个输入字段
- reporting-services - SSRS 中的条件格式背景颜色