2009-08-19 18 views
87

Necesito consumir un servicio web. Me enviaron el archivo WSDL. ¿Qué debo hacer para agregarlo a mi sitio web y comenzar a utilizarlo como proxy? (Si lo puse en un directorio virtual, puede descubrirse, pero ¿me otorga la conexión con el servicio web real?)Cómo usar un WSDL

+8

Bueno, upvoted porque es una pregunta que creo que otros usuarios aquí se beneficiaría de ver una respuesta a. Estaba buscando este problema exacto y estoy feliz de haberlo encontrado aquí. – schizoid04

Respuesta

105

Arrancar Visual Studio 2008, crear un proyecto web (o aplicación de consola, no importa), y luego hacer clic derecho en el proyecto y seleccionar "Agregar referencia de servicio" en el menú contextual.

Ingrese la ruta del archivo y el nombre en el cuadro e importe el WSDL; esto generará un cliente WCF simple y muy básico para su uso. Debería encontrar una clase "YourservicenameClient" en el código generado que debería tener métodos para cada uno de los métodos definidos en el contrato WSDL.

Crea una instancia del cliente y llama a los métodos que deseas llamar, ¡eso es todo!

YourServiceClient client = new YourServiceClient(); 
client.SayHello("World!"); 

Si es necesario especificar la URL remota (no usar el creado por defecto), se puede hacer esto en el constructor del cliente proxy:

YourServiceClient client = new YourServiceClient("configName", "remoteURL"); 

donde configName es el nombre del punto final a usar (utilizará todas las configuraciones, excepto la URL), y remoteURL es una cadena que representa la URL a la que se conecta (en lugar de la que contiene la configuración).

+0

Esto funciona bien. Solo una pregunta, si tengo el archivo wsdl en mi máquina, y agrego la referencia a este archivo. Cuando ejecuto la URL que golpea es la que aloja el servicio web, o debo especificar el enlace y el punto final? – jmayor

+1

Depende de usted: de forma predeterminada, el código creado para el proxy del cliente tendrá la URL contenida en el WSDL. Si necesita ir a otra URL, debe especificarla usted mismo. –

+0

¿Por qué es esto tan fácil? ¿No hay una trampa? : p Gracias! – Odys

34

En visual studio.

  • Crear o abrir un proyecto.
  • Haga clic con el botón derecho del mouse en el proyecto del explorador de soluciones.
  • Seleccione "Agregar referencia de servicio"
  • Pegue la dirección con WSDL que recibió.
  • Haga clic en Aceptar.

Si no hay errores, debería poder ver la referencia del servicio en el navegador de objetos y todos los métodos relacionados.

+8

<3 Visual Studio ... Sí, es así de simple :) – cwap

+3

El OP no tiene una dirección sino un archivo. –

+7

escriba la ruta/nombre de archivo para el archivo WSDL ...... –

13

Utilice WSDL.EXE utility para generar un proxy de servicio web de WSDL.

Usted obtendrá un fichero fuente # larga C que contiene una clase que tiene este aspecto:

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")] 
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol { 
    ... 
} 

En el lado del cliente, servicio web que consume código: MyService

  1. instantiate .
  2. establezca su propiedad Url
  3. métodos Web invocar
+4

Esto crea un servicio web ASMX de "estilo antiguo" - aquellos que están obsoletos - uno debe usar WCF en su lugar hoy en día –

+1

-1 para fomentar el uso de tecnología heredada. –

+13

+1, las otras soluciones NO funcionó para mí. – Nuzzolilo

Cuestiones relacionadas