Używam biblioteki DLL innej firmy, która przesyła dokument XML przez Internet.Dlaczego "Dane na poziomie katalogu głównego są nieprawidłowe. Linia 1, pozycja 1." dla dokumentu XML?
Dlaczego DLL powinien rzucić następujący wyjątek?
Dane na poziomie katalogu głównego są nieprawidłowe. Linia 1, pozycja 1. (patrz poniżej pełnego tekstu wyjątku.)
Oto kilka pierwszych linii dokumentu XML:
<?xml version="1.0" encoding="utf-8"?> <REQUEST> <HEADER>
<REQUESTID>8a5f6d56-d56d-4b7b-b7bf-afcf89cd970d</REQUESTID>
<MESSAGETYPE>101</MESSAGETYPE>
<MESSAGEVERSION>3.0.2</MESSAGEVERSION>
Wyjątek:
System.ApplicationException was caught
Message=Unexpected exception.
Source=FooSDK
StackTrace:
at FooSDK.RequestProcessor.Send(String SocketServerAddress, Int32 port)
at Foo.ExecuteRequest(Int32 messageID, IPayload payload, Provider prov)
at Foo.SendOrder(Int32 OrderNo)
InnerException: System.Xml.XmlException
LineNumber=1
LinePosition=1
Message=Data at the root level is invalid. Line 1, position 1.
Source=System.Xml
SourceUri=""
StackTrace:
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
at System.Xml.XmlDocument.Load(XmlReader reader)
at System.Xml.XmlDocument.LoadXml(String xml)
at XYZ.RequestProcessor.GetObjectFromXML(String xmlResult)
at XYZ.RequestProcessor.Send(String SocketServerAddress, Int32 port)
InnerException:
W jaki sposób plik xml jest przesyłany przez Internet? HTTP? Jeśli tak, sprawdź, czy a) plik ma zestawienie komponentów, oraz b) nagłówek HTTP określa zestaw znaków innych niż UTF8. –