2012-07-30 20 views

Respuesta

8

Lo más probable es que desee utilizar un servicio de Windows.

Beneficios:

  • Se puede controlar el usuario (y los derechos asociados con esta cuenta de usuario) que se inicia el proceso de
  • Un proceso iniciado automáticamente significa el escritorio necesita estar en, no usuario registrado, para el servicio se ejecute
  • una política en caso de fallo se puede definir (intenta reiniciar n veces ejecutar un programa específico en caso de fallo)
  • una dependencia se puede definir (si dependen de otros Sevicios)
  • Puede ajustar la secuencia de comandos en una ventana invisible
  • Usted puede fácilmente empezar/detener/reiniciar la secuencia de comandos (net start <scriptname>)

Citado desde aquí:What is the benefit of developing the application as a windows service?

+2

Excelente respuesta. Yo agregaría que, para los escenarios de avances, puede alojar una pequeña aplicación web directamente dentro de su servicio. Esto le permitirá controlar o monitorear remotamente el servicio (solo tenga cuidado con las implicaciones de seguridad). Un ejemplo de esto es el [servicio de administración de Rabbitmq] (http://www.rabbitmq.com/management.html). Un pequeño servidor web incorporado permite al administrador monitorear el servicio de manera remota –

0

servicio de Windows, porque no requiere usuario conectado.

0

Yo diría; Servicios de Windows.

En ese caso (entre otras cosas) no necesita un usuario para iniciar sesión, puede configurarlo en un asunto para reiniciar automáticamente si se apaga por alguna razón y usted (podría) tener amplios derechos a lo largo de el sistema.

0

servicio de Windows en general. La aplicación de consola deberá reiniciarse si el servidor se reinicia mientras que un servicio de Windows puede iniciarse automáticamente.

3

Una aplicación de consola en ejecución no es una opción, como han indicado los demás.

Si solo desea que la tarea se ejecute cada x minutos, la opción más simple es una tarea programada utilizando una aplicación de consola.

Un servicio de Windows tiene sus ventajas, pero es un poco más complejo de implementar e implementar. Sin embargo, si su aplicación necesita estar "siempre activada" (por ejemplo, necesita reaccionar ante activadores externos, escuchar la cola de mensajes, ...), un servicio de Windows es la única opción. Como los otros han dicho, la infraestructura de servicios también ofrece más capacidades de gestión, una función de integración con las opciones de registro de eventos, reinicio y de conmutación por error ...

+0

¡Gracias Jeroenh!Sí exactamente ese es mi requisito, debería ser capaz de desencadenar la tarea decir cada x minutos. ¿Pueden ustedes decir cuán complejo es con los servicios? – Juni

+0

http://www.pedautreppe.com/post/How-to-create-(and-deploy)-a-windows-service-in-C-.aspx – jeroenh

+0

Pero como dije en mi respuesta, si simplemente necesita la tarea de ejecutar cada x minutos, una tarea programada es mucho más fácil y tiene muchas de las mismas ventajas (puede ejecutarse sin supervisión, fácil implementación, integración con registro de eventos, etc.) – jeroenh

Cuestiones relacionadas