Cómo usar un WSDL


Necesito consumir un Servicio Web. Me enviaron el archivo WSDL. Qué debo hacer para agregarlo a mi sitio web y comenzar a usarlo como proxy. ( Si lo pongo en un Directorio Virtual puede ser descubierto, pero ¿me concede la conexión con el servicio web real?)

Author: Kazelin, 2009-08-20

4 answers

Encendería Visual Studio 2008, crearía un proyecto web (o aplicación de consola - no importa), y luego haría clic derecho en el proyecto y elegiría "Agregar referencia de servicio" en el menú contextual.

Introduzca la ruta y el nombre del archivo en el cuadro e importe el WSDL - esto generará un cliente WCF simple y muy básico para que lo use. Debe encontrar una clase" YourservicenameClient " en el código generado que debe tener métodos para cada uno de los métodos definidos en el WSDL contrato.

Instanciar el cliente y llamar a los métodos que desea llamar - eso es todo lo que hay!

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

Si necesita especificar la URL remota (no utilizando la creada por defecto), puede hacerlo fácilmente en el constructor del cliente proxy:

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

Donde configName es el nombre del endpoint a usar (usará todas las configuraciones excepto la URL), y remoteURL es una cadena que representa la URL a la que conectarse (en lugar de la contenida en la configuración).

 113
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-10 15:00:02

En visual studio.

  • Crear o abrir un proyecto.
  • Haga clic con el botón derecho en proyecto desde el explorador de soluciones.
  • Seleccione"Add service refernce"
  • Pegue la dirección con WSDL que recibió.
  • Haga clic en Aceptar.

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

 41
Author: vidalsasoon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-19 20:46:53

Use WSDL.EXE utility para generar un proxy de Servicio web desde WSDL.

Obtendrá un archivo fuente largo de C# que contiene una clase que se ve así:

/// <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, código que consume servicios web:

  1. crear instancias de MyService.
  2. establece su propiedad Url
  3. invocar métodos web
 14
Author: azheglov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-08-19 21:01:29

Si desea agregar una referencia wsdl en . Net Core project , no hay opción "Agregar referencia web".

Para agregar la referencia wsdl vaya al Explorador de soluciones, haga clic con el botón derecho en el elemento del proyecto Referencias y luego haga clic en la opción Add Connected Service.

introduzca la descripción de la imagen aquí

Luego haga clic en 'Microsoft WCF Web Service Reference':

introduzca la descripción de la imagen aquí

Ingrese la ruta del archivo en el cuadro de texto URI e importe WSDL:

introduzca la descripción de la imagen aquí

Generará un cliente WCF simple y muy básico y lo usarás algo como esto:

YourServiceClient client = new YourServiceClient();
client.DoSomething();
 3
Author: Nedzad G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-31 11:19:28