繁体   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