Windows services 将应用程序开发为windows服务有什么好处?

Windows services 将应用程序开发为windows服务有什么好处?,windows-services,Windows Services,我将开发一个应用程序,它将处理在线数据(通过套接字提交),并且不需要任何用户交互 我正在考虑一个简单的控制台应用程序,但是windows服务有什么好处呢?(我知道windows服务不需要用户登录才能运行该服务,但我想了解额外的好处)在我的脑海中: 您可以控制启动流程的用户(以及与此用户帐户关联的权限) 自动启动的进程意味着需要打开桌面,而不是用户登录,服务才能运行 可以定义失败策略(如果失败,尝试重新启动n次运行特定程序) 可以定义依赖项(如果您依赖其他服务) 你可以把你的纸条用塑料袋包起来

我将开发一个应用程序,它将处理在线数据(通过套接字提交),并且不需要任何用户交互

我正在考虑一个简单的控制台应用程序,但是windows服务有什么好处呢?(我知道windows服务不需要用户登录才能运行该服务,但我想了解额外的好处)

在我的脑海中:

  • 您可以控制启动流程的用户(以及与此用户帐户关联的权限)
  • 自动启动的进程意味着需要打开桌面,而不是用户登录,服务才能运行
  • 可以定义失败策略(如果失败,尝试重新启动n次运行特定程序)
  • 可以定义依赖项(如果您依赖其他服务)
  • 你可以把你的纸条用塑料袋包起来
  • 您可以轻松启动/停止/重新启动脚本(
    net start

事实上,我认为这取决于应用程序的使用情况

例如,如果您只需要在特定时间运行处理,那么使用命令行就足够了

如果您的进程需要连续、安静地运行(无用户交互),那么windows服务将非常有趣

您也可以考虑Windows中的<强>任务调度<强>。基本上,它将在指定时间运行应用程序(例如通过.bat文件)。如果您的应用程序需要每天02:00运行,那么它将非常有用,例如。。。 在“控制面板”中,您有一个选项“计划任务”。然后,单击“添加计划任务”,并按照向导操作

  • 您可以从另一台计算机管理服务(启动/停止)
  • 当服务写入事件日志时,您还可以从另一台计算机监视服务(尽管没有任何东西阻止您从常规应用程序执行此操作)
  • 无需登录任何人即可运行服务

  • 我不能在VonC的列表中添加任何内容,但我要补充的是,如果您使用的是常用的Microsoft工具(VS和.net),那么两者都很容易做到

    我创建了一个包含所有应用程序逻辑的类库和一个包含.Start()和.Stop()方法的MyServer类。然后,您可以创建同时引用此内容的控制台应用程序和winservice应用程序。例如,控制台应用程序实例化一个新的MyServer,调用Start,等待按键并调用Stop


    我在开发期间使用控制台应用程序和Windows服务进行部署。

    这很好,但是我将用C++(Win32应用程序)开发它。