XMLException:缺少根元素

XMLException:缺少根元素,xml,msmq,Xml,Msmq,目前,我正在运行一个windows服务,该服务从队列MSMQ读取消息。 从队列接收消息时,偶尔会抛出以下错误。。。ie在对队列上的4000个事务运行测试时,异常被抛出两次 有什么建议可以解释是什么原因造成的吗?值得注意的是,队列位于运行应用程序的不同服务器上 20121011161348.899作业->异常XmlException System.Xml.XmlException:缺少根元素。在 System.Xml.XmlTextReaderImpl.ThrowWithOutlineInfo字符

目前,我正在运行一个windows服务,该服务从队列MSMQ读取消息。 从队列接收消息时,偶尔会抛出以下错误。。。ie在对队列上的4000个事务运行测试时,异常被抛出两次

有什么建议可以解释是什么原因造成的吗?值得注意的是,队列位于运行应用程序的不同服务器上

20121011161348.899作业->异常XmlException System.Xml.XmlException:缺少根元素。在 System.Xml.XmlTextReaderImpl.ThrowWithOutlineInfo字符串位于 System.Xml.XmlTextReaderImpl.ParseDocumentContent位于 System.Xml.XmlReader.MoveToContent位于 System.Xml.XmlReader.IsStartElementString localname,字符串ns位于 System.Messaging.XmlMessageFormatter.ReadMessage消息位于 System.Messaging.Message.get_Body at PTFMiddleware.Queues.QueueMessaging.Receive[T]MessageQueue队列, 字符串和标签,可为null `1超时时间 PTFMiddleware.ProcessCCHMessages.Worker.Job

亲切问候,,
Fiona

您的服务似乎需要XML数据,并在队列中找到一些非XML的数据。从您引用的错误消息中可以清楚地看到这一点。根本原因在于数据生产者;要识别数据生产者,您需要识别队列中导致问题的特定消息

在4000个事务的测试集中,使用二进制搜索技术将在14次测试运行中识别出一条有问题的消息:

将$low设置为1,$high设置为2000,$altlo设置为2001,$althi设置为4000。 测试从$low到$high的事务。 如果未报告任何错误,则问题在系统的另一半 数据集,将$low设置为$altlo,将$HI设置为$althi。如果您感到偏执和谨慎,请重新运行测试以确认错误确实发生在这组数据中。 如果$low=$high,则所示位置的交易是错误的。 将$althi设置为$high、$high设置为$low+$high/2、$altlo设置为$high+1、$low设置为$low,然后转至步骤2。 一旦你发现了冒犯性的信息,看看它们是从哪里来的以及问题的性质。可能在生成的XML中有多个最外层的元素。可能根本没有包含元素。找到损坏的数据源;修理