我在我的数据库中有一个任务表。我想从此表中读取数据并运行任务。哪一个更好,是否将其作为Windows服务或控制台应用程序运行。运行此服务器的服务器将不会关闭有Windows服务或控制台应用程序很好吗?
回答
你很可能想要使用Windows服务。
优点:
- 您可以控制启动过程
- 自动启动的程序是指在桌面需要上,而不是用户登录(与该用户帐户关联和权限)的用户,为服务运行
- 失败的策略可以被定义(尝试重新启动ñ如果失败次运行特定的程序)
- 依赖关系可以定义(如果你依赖于其他服务队)
- 你可以用你的脚本在不可见的窗口
- 您可以轻松地启动/停止/启动脚本(
net start <scriptname>
)
从这里引:What is the benefit of developing the application as a windows service?
Windows服务,因为它不需要登录用户。
我会说; Windows服务。
在这种情况下(其中包括)您不需要用户登录,您可以配置它以便在出于某种原因关闭时自动重新启动,并且您(可以)拥有广泛的权限系统。
Windows服务一般。如果服务器在Windows服务可以自动启动时重新启动,则需要重新启动控制台应用程序。
运行控制台应用程序不是其他人所说的选项。
如果您只是希望每x分钟运行一次任务,最简单的选项是使用控制台应用程序的计划任务。
Windows服务有它的好处,但实施和部署要复杂一点。但是,如果您的应用需要“始终开启”(例如需要响应外部触发器,听取消息队列......),则Windows服务是唯一的选择。正如其他人所说,在服务基础设施还提供了更多的管理功能,内置了与事件日志,重新启动和故障恢复选项集成...
谢谢Jeroenh!是的,这正是我的要求,我应该能够触发任务说,每X分钟..你能告诉它有多复杂,它与服务? – Juni 2012-07-30 13:01:44
http://www.pedautreppe.com/post/How-to-create-(and-deploy)-a-a-windows-service-in-C-.aspx – jeroenh 2012-07-30 13:41:16
但正如我在我的回答中所述,如果你只是需要每x分钟运行一次任务,计划任务就容易得多,并且具有许多相同的优点(可以运行无人值守,轻松部署,与事件日志集成等) – jeroenh 2012-07-30 13:42:43
你应该看看:https://github.com/thedavejay/Self-Installing-Windows-Service
它允许你调试作为控制台应用程序,然后将其安装为Windows服务。
- 1. 控制台应用程序通过Windows服务的好处
- 2. Windows服务或控制台应用程序中的System.Timers.Timer
- 3. Windows服务或控制台应用程序?
- 4. 在后台运行的服务或控制台应用程序?
- 5. 控制台应用程序到服务
- 6. REPL控制台应用程序服务
- 7. 等效System.Windows.Forms.Application.ThreadException为控制台应用程序或Windows服务或一般
- 8. 在Windows控制台应用程序中使用ax2012服务
- 9. 控制台应用程序与Windows服务进行通信
- 10. 在Windows服务主机控制台应用程序
- 11. 从vb.NET控制台应用程序到Windows服务
- 12. 在Windows服务器上预定的控制台应用程序
- 13. Windows服务参数为控制台应用程序
- 14. 将C#控制台应用程序作为Windows服务运行
- 15. 如何将控制台应用程序转换为Windows服务?
- 16. 将控制台应用程序安装为Windows服务
- 17. SUBST和控制台应用程序与Windows的服务
- 18. 将控制台应用程序转换为Windows服务
- 19. 运行Windows服务作为一个控制台应用程序
- 20. Windows服务和更新C#控制台应用程序
- 21. 使用Windows服务或控制台应用程序获取access_token。对于Instagram Api
- 22. 控制台应用程序或Web服务
- 23. Windows服务或控制台应用程序中的文件系统观察器?
- 24. 如何动态地或者控制台应用程序或Windows应用程序
- 25. 在Windows控制台应用程序
- 26. C#控制台和Windows应用程序
- 27. C++控制台应用程序可以用户友好吗?
- 28. Windows Phone后台应用程序服务
- 29. 在Windows Server 2003中安装控制台应用程序作为Windows服务
- 30. windows服务控制器应用程序编程接口驱动程序服务
优秀的答案。我会补充一点,对于高级场景,您可以直接在您的服务中托管一个小型Web应用程序。这将允许您远程控制或监视服务(只要注意安全隐患)。一个例子是[Rabbitmq管理服务](http://www.rabbitmq.com/management.html)。一个小型嵌入式Web服务器允许amdinistrator远程监控服务 – 2012-07-30 13:06:09