如何让进程在远程Windows服务器上运行

问题描述:

我需要实现在远程Windows服务器24/7上运行的后台进程。我的开发环境是C#/ ASP.NET 3.5。这个过程的目的是:如何让进程在远程Windows服务器上运行

  • 发送提醒邮件,以在适当的时间员工和客户(比如5:00 PM当天作业计划之前)
  • 查询和保存员工的GPS坐标当他们应该出外工作时,我可以稍后确认他们的职位是他们应该在的地方。

如果该进程失败(它有可能会被添加更新尤其是当),我需要它立即重新启动(或短短几分钟内),如果这个过程失败,我会很严重的问题发送通知,记录GPS坐标或任何其它旨在执行的任务。

  1. 将您的过程实现为Windows服务。 有关 如何编码Windows服务的简单示例,请访问 .Net,网址见http://www.developer.com/net/csharp/article.php/2173801

  2. 要控制会发生什么情况应该 服务无法通过 “恢复”选项卡上的在SERVICES.MSC服务 配置此。 (见下图)

  3. 对于higly关键的操作你 可能会考虑建立一个服务器集群减轻单 服务器故障(见http://msdn.microsoft.com/en-us/library/ms952401.aspx)。

alt text

您需要Windows服务。您可以在Windows服务中执行非视觉迭代操作。

+0

你能解释一下如何让服务自动重启吗? – DOK 2009-05-23 18:57:06

除了作为服务之外,您可能希望在群集上运行,并使群集管理软件知道您的服务。

另一种选择是创建一个正常的应用程序并按计划运行它。您的应用程序每天在特定时间运行以执行其操作,具体取决于您需要记录GPS坐标和发送报告的频率。如果你的服务不需要经常运行,这通常是推荐的方法,因为服务应该限于永远在线的应用程序。

您可以创建Windows服务(Windows上的服务器编程)或使用调度程序定期执行任务。

根据高可用性的要求,程序可以安装在故障转移群集上,其中将启动其他服务器(被动节点),并在第一个(主动节点)死亡时静静地等待热备份。这是一个广泛的话题。从*上的High availablity开始。

以我的经验,如果你需要运行,你需要有(一个或多个)看门狗过程来验证您的服务(S)的正常运行全天候的东西。仅仅依靠正常的服务框架并不能保证程序运行正常 - 即使它看起来像在运行。看门狗程序(也是服务)可以自动查询服务,例如发布消息检查响应时间,查询统计数据等 - 当它检测到问题时,它可以重新启动服务(或者执行其他故障恢复)

使用看门狗程序而不仅仅依赖用户查询检测错误是它可以自动完成。这是首选的方法,因为它允许主动检测。