Système.Xml.XmlException: fin de fichier Inattendue lors de l'analyse de Nom a eu lieu

Je suis en utilisant un XmlReader récupérées à l'aide de SqlCommand.ExecuteXmlReader.

Voici ma contribution

Quand je lance cette ligne de code:

XDocument currentXDoc = XDocument.Load(ktXmlReader.ReadSubtree());

il fonctionne de la première fois, la lecture dans le premier Produit nœud comme prévu.

La deuxième fois qu'il fonctionne, je reçois l'exception suivante:

System.Xml.XmlException:
Message: Unexpected end of file while parsing Name has occurred. Line 1, position 2048.

Stacktrace:    at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
   at System.Xml.XmlTextReaderImpl.ParseQName(Boolean isQName, Int32 startOffset, Int32& colonPos)
   at System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
   at System.Xml.XmlTextReaderImpl.ParseEndElement()
   at System.Xml.XmlTextReaderImpl.ParseElementContent()
   at System.Xml.XmlSubtreeReader.Read()
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
   at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
   at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)

Je n'ai trouver cette question et cette question qui sont semblables à la mienne, mais je suis assez sûr de mon XML est bien formé (je peux l'obtenir directement à partir de l'exécution d'une procédure stockée)

Mes idées à ce jour:

  1. 2048 est un très suspect numéro dans les ordinateurs. Je suis en cours d'exécution dans un 2KB limite quelque part dans XDocument ou XmlReader?
  2. Mon ktXmlReader.Read() dans la boucle while est en quelque sorte sauter tous les autres nœuds et aller directement à la EOF

OriginalL'auteur Codeman | 2013-03-19