Con svcutil, puede crear interfaces y clases (contratos de datos) a partir del 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, necesita 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 bien, una clase por sí sola todavía no ayuda: necesitará alojar el servicio en algún lugar. Debe crear su propia instancia de ServiceHost que aloje el servicio, configurar puntos finales, etc., o puede alojar su servicio dentro de IIS.
Existen buenos recursos si sabe qué buscar. Pruebe "Contrato primero" y WCF. o "WSDL First" y WCF.
He aquí una selección:
fuente
ReplyAction="*"
. Parece que necesitas deshacerte de eso. Hay un rastro de explicaciones de ese comentario que da el razonamiento, pero no lo he leído.Utilice svcutil.exe con el
/sc
conmutador para generar los contratos 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 usando el/o
interruptor, o puede encontrar el archivo en la carpeta donde ejecutó svcutil.exe. El idioma predeterminado es C #, pero creo que (nunca lo he probado) debería poder cambiar esto usando/l:vb
.Si su WSDL tiene archivos XSD compatibles, páselos como argumentos después del WSDL.
Luego, cree una nueva clase que sea su servicio e implemente la interfaz de contrato que acaba de crear.
fuente
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 fallas requeridos.
Luego, simplemente elimine el código del cliente: clases que implementan los contratos de servicio. Luego, deberá implementarlos usted mismo, en su servicio.
fuente
Con la herramienta "Agregar referencia de servicio" en Visual Studio, puede insertar la dirección como:
Y se cargará correctamente.
fuente