How to keep a process running on a remote windows server

I need to implement a background process that runs on a remote windows server 24/7. My development environment is C#/ASP.NET 3.5. The purpose of the process is to:

  • Send reminder e-mails to employees and customers at appropriate times (say 5:00PM on the day before a job is scheduled)
  • Query and save GPS coordinates of employees when they are supposed to be out on jobs so that I can later verify that their positions were where they were supposed to be.

If the process fails (which it probably will, especially when updates are added), I need for it to be restarted immediately (or within just a few minutes) as I would have very serious problems if this process failed to send a notification, log a GPS coordinate, or any of the other tasks its meant to perform.

Answer

  1. Implement your process as a Windows service.
    For a straightforward example of how
    to code a Windows service this in
    .Net see http://www.developer.com/net/csharp/article.php/2173801 .

  2. To control what happens should the
    service fail configure this through
    the “Recovery” tab on your service
    in services.msc. (see image below)

  3. For higly critical operation you
    might look into setting up a server cluster for mitigating single
    server failure (see http://msdn.microsoft.com/en-us/library/ms952401.aspx ).

alt text
(source: microsoft.com)

Leave a Reply

Your email address will not be published. Required fields are marked *