Compartir a través de


Host de servicios de Windows

Download sample

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).

Nota

El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.

Después de generar 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 sólo 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 certificar 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="https://localhost:8000/ServiceModelSamples/service"/>
      </baseAddresses>
    </host>
    <!-- This endpoint is exposed at the base address provided by host: https://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, generar y ejecutar el ejemplo

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

  2. Para generar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Generación de ejemplos de Windows Communication Foundation.

  3. Una vez generada la solución, ejecute Setup.bat para instalar el servicio de Windows mediante 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 Ejecución de ejemplos de Windows Communication Foundation.

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.