我将开发一个应用程序,它将处理在线数据(通过套接字传递),它不需要任何用户交互.
我在考虑一个简单的控制台应用程序,但是Windows服务呢?它提供了额外的好处吗?(我知道Windows服务不需要用户登录来运行服务,但我要求额外的好处)
在我的头顶:
您可以控制启动该过程的用户(以及与此用户帐户关联的权限)
自动启动的进程意味着桌面需要打开而不是用户登录才能运行服务
可以定义失败策略(如果失败,尝试重启n次运行特定程序)
可以定义依赖项(如果依赖于其他服务)
你可以将你的脚包装在一个看不见的窗口
你可以轻松地启动/停止/重启脚本(net start
)
我不能在VonC的列表中添加任何内容,但我想补充一点,如果您使用的是常用的微软工具(VS和.net),那么两者都很容易.
我创建了一个包含所有应用程序逻辑的类库和一个具有.Start()和.Stop()方法的MyServer类.然后,您可以创建一个控制台应用程序和winservice应用程序,两者都引用它.例如,控制台App实例化一个新的MyServer,调用Start,等待按键并调用Stop.
我在开发期间使用控制台应用程序,使用Windows服务进行部署.