保持控制台应用程序在后台运行的最佳方法是什么?

时间:2010-02-25 19:41:49

标签: c#

我正在研究一个控制台应用程序,我想在它们启动到关闭的那一刻在机器的后台运行。现在我知道创建一个Windows服务是最佳的,但在这种情况下,我需要能够与证书存储区联系,我不相信本地服务帐户证书存储区会这样做。

我正在寻找System.Timers来保持应用程序的运行,而不是用无限的声明来处理死亡,这是处理这个问题的合理方法还是有更好的方法来保持应用程序的开放?应用程序将经常检查SQL数据库,看看是否有任何工作要做。

4 个答案:

答案 0 :(得分:3)

您可以在具有相应权限的任何用户下运行Windows服务。您无需在本地服务帐户下运行它。

答案 1 :(得分:1)

或者,您可以使用托盘图标让应用程序继续运行,请参阅here for a sample

虽然,您可以将应用程序作为Windows服务运行,但它需要额外的安装开销。另外=据我所知OP - 应用程序应在用户注销时关闭,这不适用于Windows服务。因此,当需要此行为时,您将明确地将其关闭。

答案 2 :(得分:0)

您可以创建Windows服务并模拟用户访问必要的证书库。请参阅此问题:SO Question

答案 3 :(得分:0)

  

现在我知道创建Windows服务是最佳的,但在这种情况下,我需要能够与证书存储区联系,我不相信本地服务帐户证书存储区会这样做。

在Windows XP中:

开始 - >设置 - >控制面板 - >管理工具 - >服务

右键点击您的服务 - >属性 - >登录标签 - >此帐户 - >指定要运行的帐户

这与Windows Vista和Windows 7类似,但我现在正在使用XP机器。

  

我正在寻找System.Timers来保持应用程序的运行,而不是用无限的声明来解决死亡问题,这是处理这个问题的合理方法还是有更好的方法来保持应用程序的开放? / p>

System.Timers可以定期做某事。同样,您可以在Windows服务中实现此功能。