2009-08-03 145 views
12

Ésta es quizás una pregunta muy simple, pero no pudo encontrar una respuesta:Generar servicio web a partir de WSDL

Para un cliente que necesita para alojar un servicio web. El cliente me ha enviado un archivo wsdl que el servicio web debería 'implementar'. ¿Cómo hago eso? He generado cualquier cantidad de clientes rpoxies, pero esto es al revés. Puedo usar los servicios web ASP.NET 2.0 o Windows Communication Foundation.

+0

generan WSDL para las clases existentes = "estrategia de abajo hacia arriba" [contra] generar un esqueleto clase dada WSDL = "estrategia de arriba abajo" existente (Wikipedia) – JohnB

Respuesta

15

wsdl.exe /server.

Genera una clase abstracta para un XML Servicio web basado en los contratos. El valor predeterminado es generar clases de proxy de cliente. Cuando se utiliza la opción /parameters, este valor es un elemento que contiene "servidor".

Usted puede hacer una cosa similar con svcutil.exe para WCF algo como:

svcutil.exe thewsdl.wsdl/idioma: C# /out:ITheInterface.cs (no he probado esto) .

Editar- John Saunders hace un buen punto en su respuesta para favorecer el enfoque de WCF, lo recomiendo también.

+0

¿Es realmente así de simple? He usado wsdl.exe varias veces, pero no sabía sobre el/server switch. Voy a probar e informar – edosoft

+1

Yeap. El primer desarrollo de WSDL es un enfoque válido: consulte este artículo: http://blogs.msdn.com/dotnetinterop/archive/2008/09/24/wsdl-first-development-with-wcf.aspx – RichardOD

+0

Si quiere el resultado, en C# es tan simple como esto: svcutil.exe thefile.wsdl –

0

Usted puede usar la utilidad de Microsoft WSDL para generar las interfaces de servidor y ponerlas en práctica

He aquí una breve descripción de la utilidad WSDL.

wsdl.exe - Utilidad para generar el código para los clientes de servicios Web XML y XML Web servicios utilizando ASP.NET a partir de archivos de contrato WSDL, XSD y esquemas .discomap documentos de descubrimiento. Esta herramienta se puede usar junto con disco.exe.

2

Puede hacer mucho con ese archivo WSDL (wissd'le).

De hacer la Clase WS manualmente utilizar el auto generada clase de wsdl.exe

nos dejó imaginar que, por su ejemplo, usted tiene esta WDSL (tooked de WebServiceX.Net)


a crear un proxy generado automáticamente de C# ir a la línea de comandos y escribir:

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts http://www.webservicex.net/TranslateService.asmx?wsdl 

Nota: de su C: \ Archivos de programa \ Microsoft SDKs \ Windows \ v6.1 \ Bin encontrará WSDL.exe o simplemente hacer un dir/s de su C: \ Archivos de programa \

si quieres en Visual Basic, sólo tiene que utilizar /idioma: vb o /l: vb

/language: El lenguaje a usar para la clase de proxy generada. Elija entre 'CS', 'VB', 'JS', 'VJS', 'CPP' o proporcione un nombre completo para una clase que implementa System.CodeDom.Compiler.CodeDomProvider.

El idioma predeterminado es 'CS' (CSharp). La forma abreviada es '/ l:'.

Este comando colocará en su C: \ myProxyScripts el proxy generado automáticamente.

si su utilizando el archivo WSDL en su ordenador, simplemente cambiar la URL a su ruta completa, por ejemplo

wsdl /language:cs /protocol:soap /out:C:\myProxyScripts C:\myProxyScripts\myWsdlFile.wsdl 

Nota: su proxy generada se denomina Servicio Nombre, el que ha especificado, en nuestro ejemplo, como:

<wsdl:service name="TranslateService"> 

Espero que esto lo ayude, comprenda el WSDL, los Proxies generados automáticamente y que ahora pueda gestionar todo lo que necesite para cumplir los deseos de sus clientes.

14

En realidad, debe hacer esto con svcutil.exe, no con wsdl.exe. WSDL.EXE es parte de la tecnología de servicio web ASMX que Microsoft ahora considera que es código "heredado", que no tendrá errores corregidos.

+1

tenga en cuenta que esto genera código WCF, no ASMX :) – balexandre

+0

Ese es el punto. La idea sería generar código que el fabricante no considere "heredado", y donde todavía planean mejorarlo y corregir errores. –

+0

+1 de mí. Debería de mencionar este punto en mi respuesta. – RichardOD

Cuestiones relacionadas