始终运行的Windows程序

pro*_*ach 2 c# windows

我要求必须始终运行在用户空间(而不是服务)中运行的Windows Forms C#.NET 2.0程序.由于我不是万无一失并且犯了编码错误,我想知道我可以使用哪些额外的保护措施来确保满足这一要求.我一直在考虑的事情是TaskScheduler每5分钟检查一次,一个存根观察者或一个二级进程.这些好/坏的想法?

谢谢,理查德

编辑:我没有使用服务的原因(明显和明智的答案!)是程序在自助服务终端类型的环境中运行,并有一个沉重的GUI组件.Windows 2000 - W7上的服务选项无法正常运行.

编辑:不使用服务的第二个原因是应用程序需要互联网访问,并且在我们的一些客户站点上,代理设置为仅允许特定用户(而不是本地系统帐户),因此如果多个确保访问将是棘手的用户登录到计算机.

Joh*_*hnL 5

任务调度程序是一个廉价的解决方案,它确实有效.我使用它来保持我们的Perforce Proxy服务器运行(服务有一些问题),到目前为止没有问题 - 虽然现在我已经说服务器可能爆炸了!

但是,最完整的解决方案是调用您的应用程序的Windows服务.您可以从应用程序中获取该服务捕获错误返回代码,在失败时重新启动它并通过电子邮件通知您,这可以帮助您诊断和修复这些问题.我认为Task Scheduler做了类似的事情,但是它无法像定制服务那样提供对应用程序的深入了解.

如果您不确定如何做到这一点,那么这样的事情应该有效:http: //www.codeproject.com/KB/install/csharpsvclesson1.aspx