Esta documentación está archivada y no tiene mantenimiento.

Host de servicio de Windows

Este ejemplo muestra un servicio Windows Communication Foundation (WCF) hospedado en un servicio de Windows administrado. Los servicios de Windows se controlan utilizando el applet Servicios en el Panel de control y pueden configurarse para que se inicien automáticamente después de un reinicio del sistema. El ejemplo está compuesto de un programa cliente y un programa de servicio de Windows. El servicio se implementa como un programa .exe y contiene su propio código de hospedaje. No es necesario que escriba el código de hospedaje en otros entornos de hospedaje, como los Servicios de activación de procesos de Windows (WAS) o Internet Information Services (IIS).

ms751414.note(es-es,VS.100).gifNota:
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.

ms751414.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<InstallDrive>: \WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\Hosting\WindowsService

Después de compilar este servicio, se debe instalar con la utilidad Installutil.exe como cualquier otro servicio de Windows. Si va a realizar cambios en el servicio, deberá desinstalarlo primero con installutil /u. Los archivos Setup.bat y Cleanup.bat incluidos en este ejemplo son los comandos para instalar e iniciar el servicio de Windows, y para apagar y desinstalar el servicio de Windows. El servicio WCF solo puede responder a los clientes si el servicio de Windows se está ejecutando. Si detiene el servicio de Windows con el applet Servicios en el Panel de control y ejecuta el cliente, se producirá una excepción EndpointNotFoundException cuando un cliente intente tener acceso al servicio. Si reinicia el servicio de Windows y vuelve a ejecutar el cliente, la comunicación se produce correctamente.

El código del servicio incluye una clase del instalador, una clase de implementación de servicio WCF que implementa el contrato de ICalculator, y una clase de servicio de Windows que actúa como el host en tiempo de ejecución. La clase del instalador, que hereda de Installer, permite instalar el programa como un servicio de NT por la herramienta Installutil.exe. La clase de implementación de servicio, WcfCalculatorService, es un servicio WCF que implementa un contrato de servicios básico. Este servicio WCF se hospeda dentro de una clase de servicio de Windows llamada WindowsCalculatorService. Para que sea calificada como un servicio de Windows, la clase hereda de ServiceBase e implementa los métodos OnStart y OnStop. En OnStart, se crea un objeto ServiceHost para el tipo WcfCalculatorService y se abre. En OnStop, ServiceHost se cierra llamando al método Close del objeto ServiceHost. La dirección base del host se configura utilizando el elemento <add> of <baseAddress>, que es un elemento secundario de <baseAddresses>, que a su vez es un elemento secundario del elemento <host>, que a su vez es un elemento secundario del elemento <service>.

El extremo que se define utiliza la dirección base y un wsHttpBinding Element. El ejemplo siguiente muestra la configuración de la dirección base así como el extremo que expone CalculatorService.

<services>
  <service name="Microsoft.ServiceModel.Samples.WcfCalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
      </baseAddresses>
    </host>
    <!-- This endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service.  -->
    <endpoint address=""
              binding="wsHttpBinding"
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

Al ejecutar el ejemplo, las solicitudes de operación y las respuestas se muestran en las ventanas de la consola del cliente y del servicio. Presione Entrar en cada ventana de la consola para cerrar el servicio y el cliente.

Para configurar, compilar y ejecutar el ejemplo

  1. Asegúrese de que ha realizado Procedimiento de instalación única para los ejemplos de Windows Communication Foundation.

  2. Para compilar el código de la edición .NET de C# o Visual Basic de la solución, siga las instrucciones de Compilación de los ejemplos de Windows Communication Foundation.

  3. Una vez compilada la solución, ejecute Setup.bat desde un símbolo del sistema de Visual Studio 2010 con privilegios elevados para instalar el servicio de Windows con la herramienta Installutil.exe. El servicio debería aparecer en Servicios.

  4. Para ejecutar el ejemplo en una configuración de equipos única o cruzada, siga las instrucciones de Running the Windows Communication Foundation Samples.

Vea también

Mostrar: