Сервис сторожевого дизайна - PullRequest
3 голосов
/ 02 марта 2010

Я работаю над устаревшим продуктом, который имеет семь служб Windows и пользовательский интерфейс. В сервисах есть ошибки, которые вызывают сбои каждые 10-15 дней. Мне нужно написать приложение для мониторинга состояния сервисов. Если службы выходят из строя, мне нужно отправить электронное письмо администратору, чтобы запустить службы.

Я не могу использовать процесс автоматического восстановления, поскольку во время некоторых сбоев появляется диалоговое окно с отчетом об ошибках Microsoft или некоторые другие диалоговые окна, и служба считается запущенной до подтверждения сообщения.

Итак, я планирую обратиться к этому отдельному приложению / службе наблюдения для отслеживания сбоев, пока ошибки в исходных службах не будут полностью исправлены.

Пожалуйста, поделитесь своими взглядами на дизайн службы сторожевой собаки.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 02 марта 2010

Из вашего вопроса я понял, что Windows не может определить, заканчивается ли служба, потому что она показывает диалог Если Windows не может определить, что служба отключена, как работает другое приложение.
вам нужно будет найти доказательства того, что процесс делает то, что должен делать. проверить, растет ли файл журнала или посмотреть, пишутся ли события, - самая простая вещь из рук.

1 голос
/ 03 марта 2010

Ваш вопрос предполагает, что восстановление службы Windows не запускается из-за сообщения об ошибке, по которому не щелкают. Возможно, вам нужно что-то, чтобы обнаружить, что диалог ошибки открыт, и нажать кнопку. Таким образом, служба может успешно завершиться, и восстановление службы Windows может начаться.

У меня есть прикрепленная программа, которую я использую для автоматического щелчка по надоедливым диалоговым окнам. Ниже приведен пример файла конфигурации, который управляет программой. Все, что вам нужно сделать, это добавить новую строку clickInfo и заполнить правильное окно и заголовки кнопок.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="clickConfiguration" type="ClickButton.ClickConfigurationSection, ClickButton"/>
  </configSections>
  <clickConfiguration>    
    <clickInfo windowName="ClearCase" buttonName="Proceed" />
  </clickConfiguration>  
</configuration>

Надеюсь, это поможет!

0 голосов
/ 02 марта 2010

Если вы не можете исправить эти сервисы, но можете «выставить» их как ресурс HTTP в Интернете, вы можете использовать онлайн-сервисы мониторинга веб-сайтов, чтобы периодически проверять, включены ли сервисы. Создайте небольшой веб-сайт, который знает, как «пинговать» ваши службы (ы) локально и запрашивать их страницы по расписанию одной из этих служб мониторинга.

Я знаю несколько таких сервисов: http://www.setcronjob.com/, http://www.webcron.org/, http://scheduler.codeeffects.com. Последний может даже отслеживать ваши HTTP-ресурсы в вашей частной сети, но эта функция не бесплатна. Надеюсь, это поможет.

0 голосов
/ 02 марта 2010

Забавно, как вам нужно вручную отредактировать реестр, чтобы отключить Drwatson, и есть командная строка, чтобы включить его;) здесь, проверьте эту Microsoft KB: http://support.microsoft.com/kb/188296

...