有Windows服务或控制台应用程序是否好?

时间:2012-07-30 12:44:25

标签: c# windows-services console-application

我的数据库中有一个任务表。我想从这个表中读取数据并运行任务。无论是将其作为Windows服务还是运行控制台应用程序,哪一个更好。将运行此服务器的服务器将不会关闭

6 个答案:

答案 0 :(得分:7)

您最有可能想要使用Windows服务。

优点:

  • 您可以控制启动流程的用户(以及与此用户帐户关联的权限)
  • 自动启动的进程意味着桌面需要打开,而不是用户登录才能运行服务
  • 可以定义失败策略(如果失败则尝试重启n次运行特定程序)
  • 可以定义依赖关系(如果您依赖其他服务)
  • 您可以将脚本包装在不可见的窗口中
  • 您可以轻松启动/停止/重启脚本(net start <scriptname>

引自此处: What is the benefit of developing the application as a windows service?

答案 1 :(得分:3)

正如其他人所说,正在运行的控制台应用程序不是一个选项。

如果您只希望每x分钟运行一次任务,那么最简单的选项是使用控制台应用程序的计划任务

Windows服务有它的好处,但实现和部署有点复杂。但是,如果您的应用程序需要“始终打开”(例如需要对外部触发器做出反应,监听消息队列,......),则Windows服务是唯一的选择。正如其他人所说,服务基础架构还提供了更多的管理功能,与事件日志的内置集成,重启和故障转移选项......

答案 2 :(得分:0)

Windows服务,因为它不需要登录用户。

答案 3 :(得分:0)

我会说; Windows服务。

在这种情况下(除其他事项外)您不需要用户登录,您可以将其配置为在某些情况下自动重启,如果由于某种原因关闭,并且您(可能)在整个过程中拥有广泛的权利系统

答案 4 :(得分:0)

Windows服务一般。如果服务器重新启动,而Windows服务可以自动启动,则需要重新启动控制台应用程序。

答案 5 :(得分:0)

你应该看看:https://github.com/thedavejay/Self-Installing-Windows-Service

它允许您作为控制台应用程序进行调试,然后将其安装为Windows服务。