2012-08-03 24 views
11

supongamos que cuando tengo solo el archivo wsdl, ¿cómo puedo crear una clase de proxy solo para llamar al servicio web de varios métodos? cómo webservice relacionó toda la clase y su propiedad & método estará expuesto en mis aplicaciones C#. ¿Alguien puede ayudar a guiarme? graciasCómo generar clases de proxy de WSDL en caso de servicio web

+3

Buscar 'wsdl.exe' o' svcutil.exe' –

+0

gracias pero hasta dónde sé que svcutil está relacionado con WCF no webservice pero no estoy seguro ... ponga un poco de luz. – Thomas

+0

http://msdn.microsoft.com/en-us/library/7h3ystb6.aspx - note MS recomienda usar svcutil.exe sobre wsdl.exe ya que este último se considera tecnología heredada. –

Respuesta

6

Necesitaría usar ServiceModel Metadata Utility Tool, o Add Service Reference Dialog de Visual Studio para generar un proxy de cliente para el servicio con el que desea comunicarse. El proxy generado proporcionará clases que resumen el contrato de servicio, y usted puede programar sus aplicaciones de cliente para interactuar con estas clases.

+0

cuando agregamos referencia web, entonces necesitamos conocer la URL del servicio web, pero en algunos casos he visto una compañía de terceros que solo proporciona el archivo wsdl. si genero proxy de wsdl, entonces cómo el proxy puede interactuar con el servicio web. cómo la clase proxy conoce la url real del servicio web ... ¿puedes discutir este concepto – Thomas

+0

de cómo se almacena la URL del servicio web en el archivo wsdl? en que etiqueta esta almacenada por favor, dame un código wsdl de muestra solo para indicar cómo se almacena la URL del servicio web en el archivo wsdl. gracias – Thomas

+0

El proxy, tal como se genera, no tiene información con respecto al punto final del servicio. Cuando crea una instancia del proxy (o un canal), debe proporcionar el enlace y el punto final que se utilizarán. Esta información también se puede leer desde un archivo de configuración, que las herramientas mencionadas anteriormente también generarán. Ver http://msdn.microsoft.com/en-us/library/ms576141.aspx – lesscode

7

Hay una utilidad, Shipps con Visual Studio (desde el año 2005, creo), llamado wsdl.exe

Es de comandos, y se puede utilizar para generar proxy.

+0

cuando añadimos referencia web, entonces necesitamos saber la URL del servicio web, pero en algunos casos he visto que una empresa de terceros proporciona solo el archivo wsdl. si genero proxy de wsdl, entonces cómo el proxy puede interactuar con el servicio web. cómo la clase proxy conoce la URL real del servicio web ... ¿puede hablar sobre este concepto? – Thomas

+0

Igual que el proxy agregado por referencia. Proxy en sí mismo no contiene información sobre la ubicación de WebService. La configuración del servicio web está en el archivo Web.config/app.config. Agregar webreference genera la configuración del cliente. Al agregar proxy por ti mismo, tendrás que agregar la configuración por ti mismo. Alternativamente, debería poder pasar URL como un parámetro constructor de cliente. – Varius

+0

jaja, estabas tan cerca de 1,000 – toddmo

2

Puede usar la herramienta WSDL.exe usando la línea de comando.

decir WseWsdl3 WSDLPath /out:MyProxyClass.cs

+0

la sintaxis es incorrecta, creo. Cuando agregamos referencia web, necesitamos saber la URL del servicio web, pero en algunos casos he visto que una empresa de terceros proporciona solo el archivo wsdl. si genero proxy de wsdl, entonces cómo el proxy puede interactuar con el servicio web. cómo la clase proxy conoce la url real del servicio web ... ¿puedes discutir este concepto? – Thomas

+0

WSDL tiene una dirección de servicio como en la etiqueta . una vez que genere un proxy, debería generar un valor de configuración en su configuración que determinará qué URL de servicio usar para una interacción. – VRK

1

si WseWsdl3.exe es incapaz de crear la clase de proxy, todavía hay un camino.

Si puede ejecutar su servicio como una aplicación web normal de ASP.NET en IIS, crea archivos ASP.NET temporales donde la clase de proxy está muy bien generada para usted.

Se puede encontrar en la carpeta:

C: \ Windows \ Microsoft.NET \ Framework \ vMAJOR.MINOR.BUILD \ Temporary ASP.NET Files \ YOUR_WEB_APP. Hay algunas subcarpetas con nombres aleatorios, vaya a la más reciente y busque algo así como "App_WebReferences.XXXX.0.cs".

Cuestiones relacionadas