none
Servicio ASMX inserta cabeceras no definidas en WSDL RRS feed

  • Pregunta

  • Hola a todos:

    He creado un servicio .asmx, que debe consumir un tercero y veo que en la definición del WSDL resultante aparecen etiquetas que no están creadas en todo el proyecto. Es como si el framework (he probado a cambiar desde [.net framework 2.0] al [.net framework 4.5.2]) introdujese dicha etiqueta.

    Ejemplo (Con el HelloWorld que genera por defecto al crear el ASMX):

    • Esta es la definición wsdl devuelta:

    He marcado la etiqueta [HelloWorldResult] que genera automáticamente y encapsula toda el contenido de la etiqueta [HelloWorldResponse].

    Pues bien para que la aplicación de un tercero lo "entienda" y lo sepa interpretar tengo que hacer que esa etiqueta [HelloWorldResult] no se genere. Pero sí el contenido que encapsula.

    Actualmente y debido a esta etiqueta estoy obteniendo el error: org.apache.axis2.databinding.ADBException: Unexpected subelement

    ¿Conocéis alguna forma de evitar la generación de esa etiqueta por defecto o de poder quitarla mediante código?

    Muchas gracias de antemano por vuestro tiempo y vuestra ayuda.

    Saludos a todos, buen día!

    lunes, 15 de enero de 2018 8:05

Respuestas

  • Hola.

    Esta es la solución que encontré.

    En lugar de desarrollarlo en VB lo hice en C#.

    En la parte de la definicion del webMetod en concreto añadir:

            [WebMethod]
            [SoapDocumentMethod(ParameterStyle = SoapParameterStyle.Bare)]

    Listo!! Quita esa etiqueta que hace que no lo entienda un tercero!

    Obviamente lo probé antes con VB y le día varias vueltas pero en el caso de VB añadiendo esa línea la etiqueta que me eliminaba era el [HelloWorldResponse] dejándome únicamente la etiqueta [HelloWorldResult].

    Saludos y espero que le sirva a algún compañero.

    • Marcado como respuesta Roque Santos jueves, 25 de enero de 2018 14:05
    jueves, 25 de enero de 2018 13:00