visual studio partir generate from crear consumir c# .net visual-studio web-services wsdl

c# - partir - Crear proxy de servicio web en Visual Studio desde un archivo WSDL



generate proxy class from wsdl file in c# (6)

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:

C:/Documents and Settings/[user]/Desktop/Webservice1.asmx

2) En Visual Studio haga clic con el botón 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 encima de C: / Documents and Settings [user] / Desktop / Webservice1.asmx, haga clic en Siguiente

4) Ahora verá que aparecen las funciones, elija su nombre para la referencia, haga clic en agregar referencia

5) ¡Ya terminaste! 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 Vinculante.

Mi aplicación necesita hablar con un servicio web que no tiene una definición de 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 parece que no funciona sin un WSDL público.

¿Cómo puedo generar el código para hablar con este servicio web usando este archivo WSDL?


El uso de WSDL.exe no funcionó para mí (me dio un error sobre el tipo faltante), 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 parecía ser capaz de encontrar todos los tipos adecuados y agregar las clases directamente a mi proyecto.


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:

wsdl.exe [path to your wsdl file] [paths to xsd files imported by wsdl]

De esta forma, wsdl.exe puede resolver todas las dependencias localmente y genera correctamente la clase de proxy.

Tal vez le ahorrará a alguien algo de tiempo: resuelve el error de "tipo faltante" cuando el servicio no está disponible en línea.


Hay un Microsoft Doc para crear su proxy WCF 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, tu Command debería ser similar a esto:

"C:/Program Files (x86)/Microsoft SDKs/Windows/v10.0A/bin/NETFX 4.6.1 Tools/wsdl.exe" /language:CS /n:"My.Namespace" https://www.example.com/service/wsdl


Intente usar WSDL.exe y luego incluya el archivo generado (.cs) en su proyecto.

Encienda el símbolo del sistema de Visual Studio (en visual studio / tools en el menú de inicio) y luego escriba

>wsdl.exe [path To Your WSDL File]

Eso escupirá un archivo, que copiará / moverá e incluirá en su proyecto. Ese archivo contiene una clase que es un proxy para su servicio, activa una instancia de esa clase, y tendrá una propiedad de URL que puede establecer sobre la marcha, y un montón de métodos que puede llamar. También generará clases para todos / cualquier objeto complejo pasado a través de la interfaz de servicio.