c # веб-сервис asmx soapui запрос null - PullRequest
0 голосов
/ 21 ноября 2018

Я сделал c# Web Service с Visual Studio.У меня есть WebMethod с именем HelloWorld

Он получает параметр класса.Я звоню из SoapUI

Вот как это получается из SoapUI.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:HelloWorld>
         <!--Optional:-->
         <tem:Request>
            <!--Optional:-->
            <tem:BGBAHEADER>
               <!--Optional:-->
               <tem:Identificadores>
                  <!--Optional:-->
                  <tem:IdMensaje idEsquema="?"/>
                  <!--Optional:-->
                  <tem:IdMensajeAnterior idEsquema="?"/>
                  <!--Optional:-->
                  <tem:IdOperacion idEsquema="?"/>
               </tem:Identificadores>
               <!--Optional:-->
               <tem:ModuloAplicativo>
                  <!--Optional:-->
                  <tem:IdGalicia>?</tem:IdGalicia>
                  <!--Optional:-->
                  <tem:IdConsumidor>?</tem:IdConsumidor>
                  <!--Optional:-->
                  <tem:IdProveedor>?</tem:IdProveedor>
               </tem:ModuloAplicativo>
               <!--Optional:-->
               <tem:Equipo ip="?" nombre="?"/>
               <!--Optional:-->
               <tem:Origen>
                  <!--Optional:-->
                  <tem:ModuloAplicativo>
                     <!--Optional:-->
                     <tem:IdGalicia>?</tem:IdGalicia>
                     <!--Optional:-->
                     <tem:IdConsumidor>?</tem:IdConsumidor>
                     <!--Optional:-->
                     <tem:IdProveedor>?</tem:IdProveedor>
                  </tem:ModuloAplicativo>
                  <!--Optional:-->
                  <tem:Canal>?</tem:Canal>
                  <!--Optional:-->
                  <tem:OrganizacionInterna tipo="?" id="?"/>
                  <!--Optional:-->
                  <tem:Equipo ip="?" nombre="?"/>
                  <!--Optional:-->
                  <tem:Terminal>?</tem:Terminal>
                  <tem:FechaHoraCreacion>?</tem:FechaHoraCreacion>
                  <!--Optional:-->
                  <tem:IdCliente idEsquema="?"/>
                  <!--Optional:-->
                  <tem:Operador idEsquema="?"/>
                  <!--Optional:-->
                  <tem:Supervision>?</tem:Supervision>
               </tem:Origen>
            </tem:BGBAHEADER>
            <!--Zero or more repetitions:-->
            <tem:Especie>
               <!--Optional:-->
               <tem:CodigosEspecie>
                  <!--Optional:-->
                  <tem:CodigoCV>?</tem:CodigoCV>
                  <!--Optional:-->
                  <tem:AliasFinanciera>?</tem:AliasFinanciera>
               </tem:CodigosEspecie>
               <!--Optional:-->
               <tem:Mercado>?</tem:Mercado>
               <!--Optional:-->
               <tem:Plazo>?</tem:Plazo>
               <!--Optional:-->
               <tem:CodigoDivisa>?</tem:CodigoDivisa>
            </tem:Especie>
         </tem:Request>
      </tem:HelloWorld>
   </soapenv:Body>
</soapenv:Envelope>

Это мой веб-метод и класс, который он получает в качестве параметра

 [WebMethod]
        public string HelloWorld(Request Request)
        {
            return "Hola ";
        }
        
    public class Request
    {
        [XmlElement(ElementName = "BGBAHEADER")]
        public BGBAHEADER BGBAHEADER { get; set; }
        [XmlElement(ElementName = "Especie")]
        public List<Especie> Especie { get; set; }
    }

Выглядит нормально .. Показывает именно то, что я хочу ...

Проблема в том, что я получаю эту ошибку ..

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>System.Web.Services.Protocols.SoapException: El servidor no puede leer la solicitud. ---> System.InvalidOperationException: Error en el documento XML (43, 53). ---> System.FormatException: La cadena de entrada no tiene el formato correcto.
   en System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer&amp; number, NumberFormatInfo info, Boolean parseDecimal)
   en System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   en Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read8_OrganizacionInterna(Boolean isNullable, Boolean checkType)
   en Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read11_Origen(Boolean isNullable, Boolean checkType)
   en Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read12_BGBAHEADER(Boolean isNullable, Boolean checkType)
   en Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read15_Request(Boolean isNullable, Boolean checkType)
   en Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read16_HelloWorld()
   en Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer.Deserialize(XmlSerializationReader reader)
   en System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   --- Fin del seguimiento de la pila de la excepción interna ---
   en System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   en System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
   --- Fin del seguimiento de la pila de la excepción interna ---
   en System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
   en System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()</faultstring>
         <detail/>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

Если я изменил тег <tem:BGBAHEADER> с <tem:bgbaheader> другим именем, он запускается без проблем, но web Method получает нулевое значение в качестве параметров

Что такоея скучаю?Почему он не принимает этот тег?

Спасибо

...