Mi aplicación necesita hablar con un servicio web que no tiene una línea de definición WSDL. Los desarrolladores sin embargo me ha proporcionado un archivo WSDL.

Con un público WSDL Visual Studio puede generar este código para mí, usar el Servicio de Referencia asistente. Pero no parece funcionar sin un público WSDL.

¿Cómo puedo generar el código para hablar a este servicio web utilizando este archivo WSDL?

InformationsquelleAutor Anne | 2010-11-29

7 Comentarios

  1. 113

    Trate de usar WSDL.exe y, a continuación, incluyendo el archivo generado (.cs) en su proyecto.

    El fuego de los Comandos de Visual Studio (visual studio/herramientas en el menú de inicio), a continuación, escriba

    >wsdl.exe [path To Your WSDL File]

    Que voy a escupir un archivo, que puede copiar/mover y a incluir en su proyecto. Ese archivo contiene una clase que es un proxy para su servicio, el Fuego de una instancia de esa clase, y eso va a tener una URL de una propiedad que se puede establecer sobre la marcha, y un montón de métodos que se pueden llamar. Que también va a generar clases para todos/cualquier complejo de los objetos pasan a través de la interfaz de servicio.

    • Gracias! Y usted puede utilizar /o parámetro para la ruta de acceso del archivo exportado. por ejemplo, >wsdl.exe example.com/service.wsdl /o:C:\Users\X\Desktop
    • y, opcionalmente, añadir un espacio de nombres manualmente, cubriendo todas las clases, para evitar conflictos con similar archivos generados.
  2. 132

    El uso de WSDL.exe no funciona para mí (me dio un error acerca de una falta de tipo), pero yo era capaz de haga click derecho en mi proyecto en VS y seleccione «Agregar Referencia de Servicio.» He entrado en la ruta de acceso al archivo wsdl en el campo de Dirección y pulse «Ir.» Que parecía ser capaz de encontrar todas las adecuadas tipos y añadido las clases directamente a mi proyecto.

    • Se enfrentan el mismo escenario y por tu sugerencia me salvó un montón de frustración y probablemente algo de pelo. Bien merecido rep ha sido dado. (Como resultado indirecto, tienes +100 en todos los sitios :))
    • He intentado esto, el archivo de las importaciones, pero no puedo ver en mi código de las clases
    • He probado este método con MSVC 2015, pero se negó a procesar el archivo wsdl utiliza la URL. Así que he usado el método descrito por Andrew M.
    • He intentado esto desde un pc que no tiene permiso para acceder a un servicio web. A pesar de la .archivo wsdl es en local, trató de conectar el servicio cuando llego a «Ir». Así que yo no era capaz de agregar referencia. En esta situación creo que la solución de Andrew M. debe ser preferido. Funcionó bien.
    • im frente a un problema similar yo soy capaz de agregar una referencia de servicio para proyecto web, pero el uso de wsdl.exe no soy capaz de generar archivo de proxy. cualquier sugerencia ..???
    • Esto no funciona para mí, lamentablemente. Yo era capaz de generar archivos con wsdl.exe se mencionó anteriormente.

  3. 14

    En el lado nota: si usted tiene todos de los archivos de forma local (no sólo archivo wsdl pero también archivos xsd) puede invocar wsdl.exe de esa manera:

    wsdl.exe [path to your wsdl file] [paths to xsd files imported by wsdl]

    De esa manera wsdl.exe puede resolver todos los dependecies a nivel local y genera la clase proxy.

    Tal vez va a salvar a alguien de algún tiempo – se resuelve «falta» tipo de error cuando el servicio no está disponible en línea.

  4. 1

    Hay un Microsoft Doc para la creación de su WCF proxy desde la línea de comandos
    .

    Usted puede encontrar su copia local de wsdl.exe en una ubicación similar a este: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools (Más información aquí)

    Al final de su Command debe ser similar a esta:

    "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\wsdl.exe"
     /language:CS /n:"My.Namespace" https://www.example.com/service/wsdl
  5. -1

    Ya que la verdadera Unión de la dirección URL para el servicio web se encuentra en el archivo, puede hacer estos sencillos pasos desde tu máquina local:

    1) Guardar el archivo en el equipo local, por ejemplo:

    C:\Documents and Settings\[user]\Desktop\Webservice1.asmx

    2) En Visual Studio, haga Clic Derecho sobre el proyecto > Seleccione Agregar Referencia Web, se abrirá Un diálogo.

    3) En el Cuadro dirección URL de la Copia local del archivo ubicación por encima de C:\Documents y la Configuración de[usuario]\Escritorio\Webservice1.asmx, haga Clic en Siguiente

    4) Ahora veremos las funciones que aparecen, seleccione su nombre por el de referencia, haga Clic en agregar referencia

    5) listo! usted puede comenzar a utilizarlo como un espacio de nombres en su aplicación no se preocupe de que se utiliza un archivo local, porque de todas maneras el verdadero dirección URL para el servicio se encuentra en el archivo en la sección de Enlace de

    • Esto ya fue sugerido en esta respuesta existente por qué repetir?
    • Por qué asmx archivo cuando la pregunta es acerca de wsdl?

Dejar respuesta

Please enter your comment!
Please enter your name here