0
votes

I have a service bus subscriber up and running, and it's functioning just fine. However, last weekend a database server (used by the listener) went down, which caused the listener to error and send several message to the Dead Letter Queue. Once the database server was running again, the listener started working, and messages no longer went to the DLQ. However, I get the following error when I try to resubmit the messages that are sitting in the DLQ:

There was an error deserializing the object of type System.String. The input source is not correctly formatted. at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.ReadObject(XmlDictionaryReader reader, Boolean verifyObjectName) at Microsoft.ServiceBus.Messaging.DataContractBinarySerializer.ReadObject(XmlDictionaryReader reader, Boolean verifyObjectName)

My understanding was that re-submitting the messages from the DLQ was a simple matter of cleaning up the data in the message (if necessary), and clicking the 'Submit' button in the Service Bus Explorer Dead Letter Queue message viewer. Does anyone know if there is another way to re-submit the messages in the DLQ from within the Service Bus Explorer?

1

1 Answers

3
votes

Of course I see the setting a couple of minutes after I post the question...

It turns out there is a Body Type dropdown at the bottom of the DLQ Message Viewer screen, and it's defaulted to 'Stream'. Changing it to 'String' fixed my issue.