【发布时间】:2011-06-24 08:58:48
【问题描述】:
我要求在用户空间(不是服务)中运行的 Windows Forms C# .NET 2.0 程序必须始终运行。由于我并非万无一失并且会犯编码错误,因此我想知道我可以使用哪些额外的保护措施来确保满足此要求。我一直在考虑的事情是 TaskScheduler 每 5 分钟检查一次,一个 stub watcher 或一个辅助进程。这些是好主意还是坏主意?
谢谢, 理查德
编辑:我没有使用服务的原因(显而易见且明智的答案!)是该程序在信息亭类型的环境中运行并且具有繁重的 GUI 组件。该服务选项在 Windows 2000 - W7 上运行不佳。
编辑:不使用服务的第二个原因是应用程序需要互联网访问,并且在我们的一些客户网站上,代理设置为仅允许特定用户(不是本地系统帐户),因此很难确保如果多个用户登录机器,则访问。
【问题讨论】:
-
您似乎在说我如何创建像 Windows 服务但不是 Windows 服务的东西。您能解释一下为什么您不想要 Windows 服务,以便我们更好地了解您想要实现的目标吗?
-
Windows 服务出了什么问题?它们旨在完全满足您的需求。
-
没错,如果你需要一些用于windows服务的gui组件,那么创建一个,用户可以选择打开它并调整设置和东西
-
Richard,您还可以拥有一个应用程序监控工具,每隔几分钟验证您的应用程序是否启动并运行,例如 Nagios。
-
@Ben 它不是服务的唯一原因是它有一个沉重的 gui(它部署在信息亭类型的情况下)。所需的平台是 Windows 2000 到 W7,并且服务呈现 GUI 的方式发生了变化,导致其执行不一致。