我们什么时候使用Windows服务?

时间:2010-05-21 17:20:34

标签: c# windows-services

是否存在我们应该使用Windows服务的情况? 我正在构建一个客户端 - 服务器项目(c#),服务器应该在没有任何用户的情况下单独工作,所以有人建议我使用Windows服务来运行服务器,这是对的吗?还是有更好的解决方案?

7 个答案:

答案 0 :(得分:7)

当应用程序需要连续运行时,通常会使用Windows服务。例如,如果他们需要:

  1. 等待传入的请求。 (如通过远程处理或wcf)
  2. 监控队列,文件系统等。
  3. 如果一个程序只需要定期运行,比如一天一次。创建计划任务通常更容易。

答案 1 :(得分:6)

Windows服务可以在计算机启动后立即开始运行,这非常适合作为服务器运行,例如http服务器。无人登录。

答案 2 :(得分:6)

在您的情况下,我会使用服务,原因如下:

  • 您无需运行会话。这有利于安全性,还可以减少服务器上的开销。
  • 您可以免费获得一些内置的管理命令
    • 开始
    • 停止
    • 暂停
    • 继续
  • 您可以处理服务器事件,例如关机。

答案 3 :(得分:1)

您应该创建Windows服务以在后台运行代码,而无需用户交互。

例如,即使没有人登录,Windows服务也会运行。

任何接受连接的服务器(例如邮件,Web或FTP服务器)通常都应该是Windows服务。

答案 4 :(得分:1)

嗯,Windows服务为您的应用程序提供了一个完整的框架,可以在您需要的时候保持活动状态,所以我认为没问题。

答案 5 :(得分:1)

无论用户是否登录,Windows服务都应该用于应该始终运行的东西。

如果您需要在没有活动用户登录的情况下运行某些内容,则需要使用Windows服务。

答案 6 :(得分:1)

当您需要应用程序开始运行时,即使没有人物理登录到机器,这在服务器机器中很常见,在这种情况下服务是一个很好的选择。特别是因为服务可以配置为自动启动,这意味着服务将在人工干预重启机器时启动。

如果您希望在服务是一个选项时托管Web服务(WCF),您可以考虑在IIS中托管,这可以减轻您编写实际托管代码等的负担。