Tutorial: Creación de un cliente Windows Communication Foundation

En este tutorial se describe la cuarta de las cinco tareas necesarias para crear una aplicación Windows Communication Foundation (WCF) básica. Para obtener información general sobre los tutoriales, consulte Tutorial: Introducción a las aplicaciones Windows Communication Foundation.

La siguiente tarea para crear una aplicación WCF es crear un cliente mediante la recuperación de metadatos de un servicio WCF. Puede usar Visual Studio para agregar una referencia de servicio, que obtiene los metadatos del punto de conexión MEX del servicio. A continuación, Visual Studio genera un archivo de código fuente administrado para un proxy de cliente en el lenguaje que ha elegido. También crea un archivo de configuración de cliente (App.config). Este archivo permite que la aplicación cliente se conecte al servicio en un punto de conexión.

Nota

Si llama a un servicio WCF desde un proyecto de biblioteca de clases en Visual Studio, puede usar la característica Agregar referencia de servicio para generar de forma automática un proxy y el archivo de configuración asociado. Sin embargo, dado que los proyectos de biblioteca de clases no usan este archivo de configuración, debe agregar la configuración del archivo de configuración generado al archivo App.config para el archivo ejecutable que llama a la biblioteca de clases.

Nota

Como alternativa, use la herramienta de utilidad de metadatos de ServiceModel en lugar de Visual Studio para generar la clase de proxy y el archivo de configuración.

La aplicación cliente usa la clase de proxy generada para comunicarse con el servicio. Este procedimiento se describe en Tutorial: Uso de un cliente.

En este tutorial, aprenderá a:

  • Cree y configure un proyecto de aplicación de consola para el cliente WCF.
  • Agregue una referencia de servicio al servicio WCF para generar la clase de proxy y los archivos de configuración.

Creación de un cliente Windows Communication Foundation

  1. Cree un proyecto de aplicación de consola en Visual Studio:

    1. En el menú Archivo, seleccione Abrir>Proyecto/Solución y vaya a la solución GettingStarted que creó anteriormente (GettingStarted.sln). seleccione Open(Abrir).

    2. En el menú Ver, seleccione Explorador de soluciones.

    3. En la ventana Explorador de soluciones, seleccione la solución GettingStarted (nodo superior) y, a continuación, seleccione Agregar>Nuevo proyecto en el menú contextual.

    4. En la ventana Agregar nuevo proyecto, en el lado izquierdo, seleccione la categoría Windows Desktop en Visual C# o Visual Basic.

    5. Seleccione la plantilla Aplicación de consola (.NET Framework) y escriba GettingStartedHost en Nombre. Seleccione Aceptar.

  2. Agregue una referencia en el proyecto GettingStartedHost al ensamblado System.ServiceModel:

    1. En la ventana Explorador de soluciones, seleccione la carpeta Referencias en el proyecto GettingStartedHost y, a continuación, seleccione Agregar referencia en el menú contextual.

    2. En la ventana Agregar referencia, en Ensamblados en el lado izquierdo de la ventana, seleccione Marco.

    3. Busque y seleccione System.ServiceModel y, a continuación, seleccione Aceptar.

    4. Para guardar la solución, seleccione Archivo>Guardar todo.

  3. Agregue una referencia de servicio al servicio de calculadora:

    1. En la ventana Explorador de soluciones, seleccione la carpeta Referencias en el proyecto GettingStartedHost y, a continuación, seleccione Agregar referencia de servicio en el menú contextual.

    2. En la ventana Agregar referencia de servicio, seleccione Detectar.

      El servicio CalculatorService se inicia y Visual Studio lo muestra en el cuadro Servicios.

    3. Seleccione CalculatorService para expandirlo y mostrar los contratos de servicio que implementa el servicio. Deje el espacio de nombres predeterminado y seleccione Aceptar.

      Visual Studio agrega un nuevo elemento en la carpeta Servicios conectados en el proyecto GettingStartedClient.

Herramienta de utilidad de metadatos de ServiceModel

En los ejemplos siguientes se muestra cómo usar de forma opcional la herramienta de utilidad de metadatos de ServiceModel (Svcutil.exe) para generar el archivo de clase de proxy. Esta herramienta genera el archivo de clase de proxy y el archivo App.config. En los ejemplos siguientes se muestra cómo generar el proxy en C# y Visual Basic, respectivamente:

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/GettingStarted/CalculatorService
svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config http://localhost:8000/GettingStarted/CalculatorService

Archivo de configuración del cliente

Después de crear el cliente, Visual Studio crea el archivo de configuración App.config en el proyecto GettingStartedClient, que debe ser similar al ejemplo siguiente:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup>
            <!-- specifies the version of WCF to use-->
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
        <system.serviceModel>
            <bindings>
                <!-- Uses wsHttpBinding-->
                <wsHttpBinding>
                    <binding name="WSHttpBinding_ICalculator" />
                </wsHttpBinding>
            </bindings>
            <client>
                <!-- specifies the endpoint to use when calling the service -->
                <endpoint address="http://localhost:8000/GettingStarted/CalculatorService"
                    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator"
                    contract="ServiceReference1.ICalculator" name="WSHttpBinding_ICalculator">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
            </client>
        </system.serviceModel>
    </configuration>

En la sección <system.serviceModel>, observe el elemento <endpoint>. El elemento <endpoint> define el punto de conexión que usa el cliente para acceder al servicio de la siguiente manera:

  • Dirección: http://localhost:8000/GettingStarted/CalculatorService. Dirección del extremo.
  • Contrato de servicio: ServiceReference1.ICalculator. El contrato de servicio controla la comunicación entre el cliente WCF y el servicio. Visual Studio generó este contrato cuando usó la función Agregar referencia de servicio. Es básicamente una copia del contrato que definió en el proyecto GettingStartedLib.
  • Enlace: WSHttpBinding. El enlace especifica HTTP como el transporte, la seguridad interoperable y otros detalles de configuración.

Pasos siguientes

En este tutorial, ha aprendido a:

  • Cree y configure un proyecto de aplicación de consola para el cliente WCF.
  • Agregue una referencia de servicio al servicio WCF para generar la clase de proxy y los archivos de configuración de la aplicación cliente.

Pase al siguiente tutorial para obtener información sobre cómo usar el cliente generado.