Mi aplicación necesita comunicarse con un servicio web que no tiene una definición WSDL en línea. Sin embargo, los desarrolladores me proporcionaron un archivo WSDL.
Con un WSDL público, Visual Studio puede generar este código para mí utilizando el asistente de referencia de servicio. Pero no parece funcionar sin un WSDL público.
¿Cómo genero el código para hablar con este servicio web usando este archivo WSDL?
Usar WSDL.exe no funcionó para mí (me dio un error sobre un tipo que faltaba), pero pude hacer clic derecho en mi proyecto en VS y seleccionar "Agregar referencia de servicio". Ingresé la ruta al archivo wsdl en el campo Dirección y presioné "Ir". Eso pareció poder encontrar todos los tipos adecuados y agregó las clases directamente a mi proyecto.
fuente
En la nota al margen: si tiene todos los archivos localmente (no solo el archivo wsdl sino también los archivos xsd), puede invocar wsdl.exe de esa manera:
De esa manera, wsdl.exe puede resolver todas las dependencias localmente y generar correctamente la clase de proxy.
Tal vez le ahorre a alguien algo de tiempo: resuelve el error de "tipo faltante" cuando el servicio no está disponible en línea.
fuente
Pruebe la herramienta de clase WSDL To Proxy incluida con .NET Framework SDK. Nunca lo he usado antes, pero ciertamente parece lo que necesitas.
fuente
Hay un documento de Microsoft para crear su
WCF
proxy desde la línea de comandos.Puede encontrar su copia local de
wsdl.exe
en una ubicación similar a esta:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
( Obtenga más información aquí )Al final,
Command
debería verse similar a esto:fuente
guarde el archivo en su disco y luego use lo siguiente como URL:
fuente
Dado que la verdadera URL de enlace para el servicio web se encuentra en el archivo, puede realizar estos sencillos pasos desde su máquina local:
1) Guarde el archivo en su computadora local, por ejemplo:
2) En Visual Studio, haga clic derecho en su proyecto> Elija Agregar referencia web, se abrirá un cuadro de diálogo.
3) En el cuadro URL, copie la ubicación del archivo local sobre C: \ Documentos y configuración [usuario] \ Escritorio \ Webservice1.asmx, haga clic en Siguiente
4) Ahora verá aparecer las funciones, elija su nombre para la referencia, haga clic en agregar referencia
5) ¡Listo! puede comenzar a usarlo como un espacio de nombres en su aplicación, no se preocupe si usó un archivo local, porque de todos modos, la verdadera URL del servicio se encuentra en el archivo en la sección Enlace
fuente