svcutil generate from wcf wsdl

wcf - svcutil generate proxy from wsdl



Cómo usar un archivo WSDL para crear un servicio WCF(no hacer una llamada) (5)

Tengo un archivo WSDL antiguo y quiero crear un servidor basado en este archivo WSDL.

El WSDL se genera a partir de un ASMX (supongo, pero no estoy seguro).

Cómo puedo conseguir esto ?

pregunta original donde el OP pensó que necesitaba crear un cliente basado en el WSDL.


Con la herramienta "Agregar referencia de servicio" en Visual Studio, puede insertar la dirección como:

file: ///path/to/wsdl/file.wsdl

Y se cargará correctamente.



Puede usar svcutil.exe para generar código de cliente. Esto incluiría la definición del contrato de servicio y cualquier contrato de datos y contratos de falla requeridos.

Luego, simplemente borre el código del cliente: clases que implementan los contratos de servicio. Luego deberá implementarlos usted mismo, en su servicio.


Usando svcutil, puede crear interfaces y clases (contratos de datos) desde el WSDL.

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)

Esto creará un archivo llamado "your.cs" en C # (o "your.vb" en VB.NET) que contiene todos los elementos necesarios.

Ahora, debe crear una clase "MyService" que implementará la interfaz de servicio (IServiceInterface), o las diversas interfaces de servicio, y esta es su instancia de servidor.

Ahora, una clase en sí misma realmente no ayuda aún: tendrás que alojar el servicio en alguna parte. Necesita crear su propia instancia de ServiceHost que aloja el servicio, configurar puntos finales, etc., o puede alojar su servicio dentro de IIS.


Use svcutil.exe con el modificador /sc para generar los contratos de WCF. Esto creará un archivo de código que puede agregar a su proyecto. Contendrá todas las interfaces y tipos de datos que necesita para crear su servicio. Cambie la ubicación de salida utilizando el modificador /o , o puede encontrar el archivo en la carpeta donde ejecutó svcutil.exe. El idioma predeterminado es C # pero creo (nunca lo he intentado) debería poder cambiar esto usando /l:vb .

svcutil /sc "WSDL file path"

Si su WSDL tiene algún archivo XSD compatible, páselos como argumentos después del WSDL.

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"

Luego, cree una nueva clase que sea su servicio e implemente la interfaz de contrato que acaba de crear.