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 基础设施中可能遇到的一些奇怪的性能问题。但这种方法为我赢得了一些时间来进一步调查。