簡體   English   中英

通過C#Web服務接收XML的確切方法

[英]Exact way to receive an XML by C# Web service

我感謝您的幫助。

我已經創建了一個Web服務來接收XML文件,因此我遵循以下方法,然后發布了它,並且對我來說效果很好:....

 XmlDocument xmldoc = new XmlDocument();
try
{
    if (HttpContext.Current.Request.InputStream != null)
    {
        StreamReader stream = new  StreamReader(HttpContext.Current.Request.InputStream);
        string xmls = stream.ReadToEnd();
        xmldoc.LoadXml(xmls);
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.ValidationType = ValidationType.Schema;
    }

}
catch (Exception ex)
{
    logger.Log(NLog.LogLevel.Error, ex.Message + ex.StackTrace);
}

...

知道我的XML結構是:

<reports uis="5521452542">
  <attribute1>val1</attribute1>
  ...
</reports>

但是在經過一些朋友的測試之后,從Lunix平台調用了我的Web服務,我在日志文件錯誤中收到以下消息錯誤; 知道他們的XML文件已經過驗證。

只是讓你知道; 他們的XML文件不包含以下聲明:

<?xml version="1.0" encoding="UTF-8"?> 

這可以提供錯誤信息嗎?

2014-04-03 03:56:53.7408|Error|Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   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 WebService.Service1.GetInfoService() in  
   D:\yassine\Mobily\Log\WebService\WebService\WebService\Service1.asmx.cs:line 56
   2014-04-03 03:56:53.8032|Error|Root element is missing.   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
   at System.Xml.Linq.XDocument.Parse(String text, LoadOptions options)
   at WebService.Service1.GetInfoService() in
   D:\yassine\Mobily\Log\WebService\WebService\WebService\Service1.asmx.cs:line 71

您能幫我找到確切的錯誤嗎?

謝謝

例外是確切說明出了什么問題,您收到的無效的xml沒有根元素。 要求您的朋友通過郵件向您發送原始xml,以便您可以看到他們向您發送的內容。

您可以Altova XmlSpy來驗證xml是否有效。 一個非常基本但有效的xml應該是:

<root>
<child></child
</root>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM