Il y a un certain nombre de choses que vous pouvez faire ici pour aider à améliorer la fiabilité, ainsi que d'évaluer que vous avez une solution qui va répondre à vos besoins.
Test
D'abord et avant tout bien, le processus de test que vous passez par devra être très solide, test pour les situations « inattendues », la perte de connexion réseau, etc. Assurez-vous que vous testez ceux-ci, et voyez ce qui se passe. Notification sur l'échec, peut être un peu d'un "sac mélangé". Par exemple, vous ne pouvez pas vous envoyer un e-mail si vous n'avez pas de connexion réseau disponible.
Code de bonne conception
En plus de mettre en place des scénarios de test valides, assurez-vous que votre code est une preuve de balle que possible, puisque vous créez un service Windows, assurez-vous que vous capturez, l'exploitation forestière et en traitant toutes les erreurs possibles, comme si une erreur montait à l'OS, votre service va tomber.
Surveillance
Envisager de mettre la surveillance, dans mon emploi de jour, nous avons deux types de surveillance utilisés, les erreurs sont signalées au journal d'événements Windows dans certains cas et Microsoft MOM est utilisé pour nous informer de tout/toutes les questions qui se passent dans l'environnement. Un deuxième processus que nous utilisons est un deuxième travail planifié qui chaque X minutes valide que le travail critique est dans un état "Démarré", s'il n'est pas dans un état démarré, il le redémarrera. Pas élégant, mais ça marche.