Есть несколько вещей, которые вы можете сделать здесь, чтобы повысить надежность, а также оценить, что у вас есть решение, которое будет отвечать вашим потребностям.
Тестирование
Прежде всего, процесс тестирования, который вы проходите, должен быть очень надежным, проверять эти «неожиданные» ситуации, потерю сетевого подключения и т. Д. Убедитесь, что вы тестируете их,и видеть, что происходит.Уведомление о сбое может быть немного «смешанным».Например, вы не можете написать себе по электронной почте, если у вас нет доступных сетевых подключений.
Правильный дизайн кода
В дополнение к настройке допустимых тестовых сценариевУбедитесь, что ваш код является пуленепробиваемым, насколько это возможно, поскольку вы создаете службу Windows, убедитесь, что вы регистрируете, регистрируете и обрабатываете все возможные ошибки, как если бы ошибка возникла в ОС, ваша служба будетперейти вниз.
Мониторинг
Подумайте о включении мониторинга, в моей повседневной работе используется два типа мониторинга: в некоторых случаях в журнал событий Windows сообщается об ошибкахи Microsoft MOM используется для уведомления нас о любых / всех проблемах, происходящих в среде.Второй процесс, который мы используем, - это второе запланированное задание, которое каждые X минут проверяет, что критическое задание находится в состоянии «Запущено». Если оно не находится в запущенном состоянии, оно перезапускает его.Не элегантно, но работает.