Tengo una tabla de tareas en mi db. Quiero leer datos de esta tabla y ejecutar tareas. Cuál es mejor si lo tiene como servicio de Windows o una aplicación de consola ejecutándose. El servidor en el que se ejecutará no se cerrará¿Es bueno tener servicio de Windows o aplicación de consola?
Respuesta
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?
servicio de Windows, porque no requiere usuario conectado.
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.
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.
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 ...
¡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
http://www.pedautreppe.com/post/How-to-create-(and-deploy)-a-windows-service-in-C-.aspx – jeroenh
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
Usted debe mirar: https://github.com/thedavejay/Self-Installing-Windows-Service
Le permite depurar como una aplicación de consola y luego instalarlo como un servicio de Windows.
- 1. ejecutar un servicio de Windows como una aplicación de consola
- 2. Aplicación de consola para comunicarse con un servicio de Windows
- 3. ¿Aplicación de consola programada frente a servicio de Windows? Cuando es apropiado usar cada
- 4. tarea programada o servicio de Windows
- 5. Ejecutar una aplicación WPF como un servicio de Windows
- 6. ¿Cómo ejecutar la aplicación de consola desde el servicio de Windows?
- 7. DVCS Choices - ¿Qué es bueno para Windows?
- 8. aplicación Windows o Aplicación
- 9. ¿Cómo convertir una aplicación de consola a un servicio?
- 10. Beneficios de la aplicación de consola sobre el servicio de Windows
- 11. Ejecución de una aplicación de consola C# como servicio de Windows
- 12. ¿Está ejecutando un servicio de Windows en modo consola?
- 13. Aplicación .NET que se ejecuta como Windows Form o como aplicación de consola
- 14. Console.WriteLine() dentro de un servicio de Windows?
- 15. ¿Es posible falsificar la consola de Windows api?
- 16. tarea programada o servicio de Windows
- 17. ¿Es bueno tener un constructor en clase abstracta?
- 18. ¿Bajo qué condiciones es bueno tener una "clase parcial"?
- 19. C#: ¿Es posible que una sola aplicación se comporte como consola o aplicación de Windows según los switches?
- 20. ¿Usar demasiada estática es malo o bueno?
- 21. ¿ToString() es bueno, malo o simplemente redundante?
- 22. Tamaño predeterminado de Windows para la aplicación de consola
- 23. Necesario: "Bueno" aplicación de ejemplo MongoDB y/o Cassandra
- 24. ¿Cuál es el beneficio de desarrollar la aplicación como un servicio de Windows?
- 25. ¿Cuál es la diferencia entre un servicio de Windows y una aplicación normal?
- 26. Equivalente de System.Windows.Forms.Application.ThreadException para la aplicación o servicio de ventanas de consola o cualquier proceso en general
- 27. ¿Es bueno Ninject para aplicaciones de producción?
- 28. Aplicación de consola de alojamiento en Azure o Amazon, ¿es posible?
- 29. filesystemwatcher como servicio de Windows?
- 30. Cómo obtener un objeto de secuencia de un archivo de recursos (Consola de aplicación/Proyecto de servicio de Windows)
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 –