none
Problemas al consumir un servicio web desde .net c# RRS feed

  • Pregunta

  • Buenas,

    Tengo un problema un poco extraño y creo que dificil de resolver. Necesito acceder a un servicio web desde c# y llamar a unos metodos. He creado el proxy añadiendo una referencia web desde mi proyecto y logro conectar al servicio e interactuar con el webservice de forma normal. El problema viene cuando uno de los metodos devuelve un tipo no estandard. Es decir, la clase esta definida en el wsdl, pero creo que visual studio no me mapea bien los los objetos personalizados.

    Sé que el host donde esta alojado el servicio tiene por delante una maquina IBM datapower que sera la me devuelve el wsdl mapeado de forma que el visual studio no lo "entienda" correctamente. Hable con el cliente y me mandaron el archivo wsdl directamente para que pudiera instanciarlo en mi proyecto de forma local, en vez de hacer la referencia a la url pero sin funcionar. El problema concreto es cuando devuelve un objeto personalizado. Es objeto tiene dentro un array tambien de otros objetos personalizados y me llega vacia. 

    He probado a consumir el servicio web con java, desde eclipse y si creo que proxy con referencia a la url me da exactamente el mismo problema, pero si instancio las clases de forma local a traves del wsdl que me paso el cliente si que me devuelve bien los tipos. 

    Sin embargo, he añadido la referencia web a visual studio poniendo como url la direccion local al archivo wsdl pero como digo, los metodos que devuelve un tipo standard, vease un entero o un string, funcionan bien. Los metodos que devuelve un objeto cuya referencia esta en el wsdl me lo devuelve vacio. Ni siquiera da error, pero no lo devuelve bien.

    Me inclino a pensar que aunque yo referencie el wsdl de forma local, como el endpoint esta incluido en el archivo, visual studio accede de forma remota a la hora de crear las clases en mi proyecto. ¿hay alguna forma de evitar eso??

    Un saludo y muchas gracias

    lunes, 4 de febrero de 2013 9:56

Todas las respuestas

  • Hola David ER,

    Revisa la configuracion de referencia del servicio en la parte cliente, posiblemente estés especificando un tipo de colección erronea... (prueba a ver ;-))

    Al añadir la referencia en configuracion avanzada...

    Info detallada : Configuraicon referencia servicio

    Saludos,


    Danicuco - 2012

    domingo, 17 de febrero de 2013 13:00
  • Hola Danicuco,

    Estoy trabajando con una referencia web por lo que la configuracion avanzada no afecta en este tipo de referencias ¿cierto??

    He intentado conectar al servicio web usando una referencia de servicio normal, pero como es un servicio web SSL con autenticacion, ha sido un quebradero de cabeza y no he conseguido conectar. Me indicaba que el protocolo URI solo puede ser http y no https como es mi caso.

    Un saludo y gracias

    martes, 19 de febrero de 2013 8:34