我有一个服务总线用户启动并运行,它运行正常。但是,上周末,数据库服务器(由侦听器使用)关闭,导致侦听器出错并向Dead Letter Queue发送了几条消息。数据库服务器再次运行后,侦听器开始工作,消息不再进入DLQ。但是,当我尝试重新提交位于DLQ中的消息时,我收到以下错误:
反序列化System.String类型的对象时出错。该 输入源格式不正确。在 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)
我的理解是,重新提交来自DLQ的消息很简单,只需清理消息中的数据(如有必要),然后单击Service Bus Explorer死信队列消息查看器中的“提交”按钮。有没有人知道是否有另一种方法可以在Service Bus Explorer中重新提交DLQ中的消息?
答案 0 :(得分:3)
当然,我在发布问题后几分钟就看到了设置......
事实证明,DLQ Message Viewer屏幕底部有一个Body Type下拉列表,它默认为' Stream'。将其更改为' String'解决了我的问题。