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

问题描述:

我打算开发一个应用程序,它将处理在线数据(通过套接字),并且不需要任何用户交互。将应用程序开发为Windows服务有什么好处?

我在想一个简单的控制台应用程序,但是Windows服务怎么样才能提供额外的好处? (我知道,窗口服务并不需要用户登录到运行服务,但我问的额外收益)

在我的头顶:

  • 您可以控制用户(以及相关的权利与此用户帐户)启动过程
  • 自动启动的过程意味着桌面需要打开,而不是用户登录,服务运行
  • 可以定义故障的策略(尝试重新启动n次运行如果特定程序失败)
  • a dependenc Y可以被定义(如果你依赖于其他服务队)
  • 你可以用你的纸条在invisible windows
  • 您可以轻松地启动/停止/启动脚本(net start <scriptname>

事实上,它确实取决于你的应用程序的用法,我想。

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

如果您的过程需要连续运行,并且静默(无用户交互),那么windows服务将非常有趣。

您也可以考虑在Windows中的任务调度。基本上,它会在指定的时间运行你的应用程序(例如通过一个.bat文件)。如果您的应用程序需要每天在02:00运行,例如... 在“控制面板”中,您可以选择“计划任务”。然后,点击“添加任务计划”,然后按照向导...

  1. 您可以从另一台计算机管理服务(启动/停止)
  2. 作为服务写入事件日志,你也可以监测从另一台机器服务
  3. 没有一个必须要登录的服务运行

我不能添加任何VonC的清单,但(虽然没有从一个普通的应用程序做这个阻止你)我会补充说,如果你使用的是通常的微软工具(VS &.net),它很容易做到这一点。

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

我在开发过程中使用控制台应用程序,并使用Windows服务进行部署。

+0

这是伟大的,但我要开发它使用c + +(win32应用程序) – 2009-01-14 09:14:03