Comparteix a través de


Hospedaje en una aplicación de servicio de Windows

Los servicios de Windows (anteriormente conocidos como servicios de Windows NT) proporcionan un modelo de proceso especialmente adecuado para las aplicaciones que deben residir en un ejecutable de larga duración y no muestran ninguna forma de interfaz de usuario. El administrador de control de servicios (SCM) administra la duración del proceso de una aplicación de servicio de Windows, que permite iniciar, detener y pausar aplicaciones de servicio de Windows. Puede configurar un proceso de servicio de Windows para que se inicie automáticamente cuando se inicie el equipo, lo que lo convierte en un entorno de hospedaje adecuado para las aplicaciones "always on". Para obtener más información sobre las aplicaciones de servicio de Windows, consulte Aplicaciones de servicio de Windows.

Las aplicaciones que hospedan servicios de Windows Communication Foundation (WCF) de larga duración comparten muchas características con los servicios de Windows. En concreto, los servicios WCF son ejecutables de servidor de larga duración que no interactúan directamente con el usuario y, por lo tanto, no implementan ninguna forma de interfaz de usuario. Por lo tanto, hospedar servicios WCF dentro de una aplicación de servicio de Windows es una opción para crear aplicaciones WCF sólidas y de larga duración.

A menudo, los desarrolladores de WCF deben decidir si hospedar su aplicación WCF dentro de una aplicación de servicio de Windows o dentro del entorno de hospedaje de Internet Information Services (IIS) o servicio de activación de procesos de Windows (WAS). Debe considerar el uso de aplicaciones de servicio de Windows en las condiciones siguientes:

  • La aplicación requiere activación explícita. Por ejemplo, debe usar los servicios de Windows cuando la aplicación se inicie automáticamente cuando se inicie el servidor en lugar de iniciarse dinámicamente en respuesta al primer mensaje entrante.

  • El proceso que hospeda la aplicación debe permanecer en ejecución una vez iniciado. Una vez iniciado, un proceso de servicio de Windows permanece en ejecución a menos que un administrador del servidor cierre explícitamente mediante el administrador de control de servicios. Las aplicaciones hospedadas en IIS o WAS se pueden iniciar y detener dinámicamente para hacer un uso óptimo de los recursos del sistema. Las aplicaciones que requieren un control explícito sobre la duración de su proceso de hospedaje deben usar servicios de Windows en lugar de IIS o WAS.

  • El servicio WCF debe ejecutarse en Windows Server 2003 y usar transportes distintos de HTTP. En Windows Server 2003, el entorno de hospedaje de IIS 6.0 solo está restringido a la comunicación HTTP. Las aplicaciones de servicio de Windows no están sujetas a esta restricción y pueden usar cualquier soporte wcF de transporte, incluidos net.tcp, net.pipe y net.msmq.

Instrucciones

  1. Cree una aplicación de servicio de Windows. Puede escribir aplicaciones de servicio de Windows mediante las clases del espacio de nombres System.ServiceProcess utilizando código administrado. Esta aplicación debe incluir una clase que herede de ServiceBase.

  2. Vincule la duración de los servicios WCF a la duración de la aplicación de servicio de Windows. Normalmente, quiere que los servicios WCF hospedados en una aplicación de servicio de Windows se activen cuando se inicia el servicio de hospedaje, detengan la escucha de mensajes cuando se detenga el servicio de hospedaje y apaguen el proceso de hospedaje cuando el servicio WCF encuentre un error. Esto se puede lograr de la siguiente manera:

    Las aplicaciones de servicio de Windows que hospedan servicios WCF se implementan y administran de la misma manera que las aplicaciones de servicio de Windows que no usan WCF.

Consulte también