有Windows服务或控制台应用程序很好吗?
我在我的数据库中有一个任务表。我想从此表中读取数据并运行任务。哪一个更好,是否将其作为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服务。
优秀的答案。我会补充一点,对于高级场景,您可以直接在您的服务中托管一个小型Web应用程序。这将允许您远程控制或监视服务(只要注意安全隐患)。一个例子是[Rabbitmq管理服务](http://www.rabbitmq.com/management.html)。一个小型嵌入式Web服务器允许amdinistrator远程监控服务 – 2012-07-30 13:06:09