Azure 服务总线 - 随机反序列化问题
Azure Service Bus - random deserialization issues
最近我的服务总线队列出现问题。随机消息(一个可以通过,另一个不能)被放置在死信队列中,错误消息为:
"DeadLetterReason": "Moved because of Unable to get Message content There was an error deserializing the object of type System.String. The input source is not correctly formatted."
"DeadLetterErrorDescription": "Des"
这甚至发生在我的消费者有机会从队列中接收消息之前。
奇怪的是,当我通过 Service Bus Explorer 重新排队消息时,它通过并被我的消费者成功接收和处理。
我使用相同版本的服务总线来发送和接收消息:
Azure.Messaging.ServiceBus, version: 7.2.1
我的消息是这样发送的:
await using var client = new ServiceBusClient(connString);
var sender = client.CreateSender(endpointName);
var message = new ServiceBusMessage(serializedMessage);
await sender.SendMessageAsync(message).ConfigureAwait(true);
因此,我目前针对所描述问题的解决方案是,我对落在死信队列中的消息实施了重试策略。消息从 DLQ 克隆并再次添加到 ServiceBus 队列,第二次没有问题,消息成功完成。我想这是因为我在 Azure 基础设施中可能遇到的一些奇怪的性能问题。但这种方法为我赢得了一些时间来进一步调查。
最近我的服务总线队列出现问题。随机消息(一个可以通过,另一个不能)被放置在死信队列中,错误消息为:
"DeadLetterReason": "Moved because of Unable to get Message content There was an error deserializing the object of type System.String. The input source is not correctly formatted."
"DeadLetterErrorDescription": "Des"
这甚至发生在我的消费者有机会从队列中接收消息之前。
奇怪的是,当我通过 Service Bus Explorer 重新排队消息时,它通过并被我的消费者成功接收和处理。
我使用相同版本的服务总线来发送和接收消息:
Azure.Messaging.ServiceBus, version: 7.2.1
我的消息是这样发送的:
await using var client = new ServiceBusClient(connString);
var sender = client.CreateSender(endpointName);
var message = new ServiceBusMessage(serializedMessage);
await sender.SendMessageAsync(message).ConfigureAwait(true);
因此,我目前针对所描述问题的解决方案是,我对落在死信队列中的消息实施了重试策略。消息从 DLQ 克隆并再次添加到 ServiceBus 队列,第二次没有问题,消息成功完成。我想这是因为我在 Azure 基础设施中可能遇到的一些奇怪的性能问题。但这种方法为我赢得了一些时间来进一步调查。