Mitch Wheat
Mitch Wheat

Reputation: 300559

Messages in Azure Message Queue are going Straight to the Poison Message Queue

[Hoping this might save someone some time.]

The code below stopped working when moving to the newer QueueClient class (in Azure.Storage.Queues) from the deprecated CloudQueue class (in Microsoft.Azure.Storage.Queue):

QueueClient queue = new QueueClient(accountConnectionString, "myQueuename");
queue.Create();
queue.SendMessage(msg);

Messages are being moved into the associated poison message queue, and I don't see any error messages in Azure's ApplicationInsights.

When I manually move the message in Azure Storage Explorer from the poison message queue back into the queue, it works!

Upvotes: 5

Views: 2713

Answers (1)

Mitch Wheat
Mitch Wheat

Reputation: 300559

The CloudQueue class defaulted to using base64 encoding in the prior v11 library, whereas QueueClient does not!

To set base64 encoding, add a QueueClientOptions:

QueueClientOptions queueOptions = 
    new() { MessageEncoding = QueueMessageEncoding.Base64 };
QueueClient queue = 
    new QueueClient(accountConnectionString, "myQueuename", queueOptions);
queue.Create();
queue.SendMessage(msg);

Upvotes: 14

Related Questions