Устранение неполадок служб Windows, настройка восстановления?

Прямо сейчас у меня есть какое-то сервисное приложение на Windows Server 2003 для ввода данных с устройств в базу данных.

Иногда службы выходят из строя из-за ошибки данных или чего-то еще (проблема с подключением к базе данных, сбой интернет-соединения и т. д.), из-за чего мне приходится перезапускать службы, прямо сейчас решение, которое я предоставляю для этой проблемы, было простой пакетной командой с использованием команды NET START/STOP. который запланирован каждые 1 час.

Затем я смотрю на вкладку восстановления в свойствах службы, там была возможность перезапустить службы, и я хочу знать, как это проверить? Например, как Windows узнает, что службы отказали? И самым важным было то, как узнать, что службы успешно перезапустились при возникновении сбоя (на основе настроек восстановления)?

PS: у меня не было доступа к коду

Спасибо


person Dels    schedule 20.04.2009    source источник


Ответы (3)


Автоматический перезапуск сервисной консоли срабатывает, когда служба аварийно завершает работу из-за необработанного исключения. (Некоторая часть вашего кода генерирует исключение, но ничто его не перехватывает, и оно всплывает вверх и выходит из основной функции.)

Если у вас есть контроль над кодом, может быть лучше поместить несколько блоков try/catch вокруг областей, которые могут вызывать проблемы, и более изящно обрабатывать ошибки. Вы также можете поместить try/catch вокруг основной точки входа приложения, чтобы поймать и попытаться обработать любые необработанные исключения из кода.

Если вы не можете контролировать код, вы можете протестировать автоматическое восстановление службы, вызвав возникновение одной из этих ошибок. Если у вас произошел сбой службы в случае проблемы с подключением, вы можете принудительно это сделать, отключив сетевой кабель от компьютера.

person Andy White    schedule 20.04.2009
comment
очень жаль, что я не могу протестировать его прямо сейчас, так как он находится на нашем рабочем сервере, и у меня не было доступа к коду, но я попытаюсь развернуть сервер разработки в ближайшее время. Кстати, как узнать, что служба перезапущена в случае сбоя? - person Dels; 20.04.2009
comment
Есть ли у вас какие-либо настройки ведения журнала в службе? Если нет, вы можете просто проверить консоль службы, чтобы увидеть, работает ли она после сбоя. - person Andy White; 21.04.2009

Самый простой способ проверить параметры восстановления — убить процесс вашей службы из диспетчера задач. Windows обнаружит это и запустит вариант восстановления при первом сбое. Последующие убийства проверят параметры «Второй сбой» и «Последующий сбой». В журнале событий будет отмечен выход и предпринятые действия.

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

person BwanaJim    schedule 11.05.2011

Вы можете восстановить его до более раннего момента времени. Восстановление Surface не изменяет ваши личные файлы, но может удалить недавно установленные приложения и драйверы.

1. Проведите пальцем от правого края экрана, а затем нажмите «Поиск». (Если вы используете мышь, наведите указатель мыши на правый верхний угол экрана, переместите указатель мыши вниз и нажмите «Поиск».)

2. Введите Панель управления в поле поиска и коснитесь или щелкните Панель управления.

3. Введите Recovery в поле поиска панели управления, а затем коснитесь или щелкните Recovery.

4. Коснитесь или щелкните «Открыть восстановление системы» и следуйте инструкциям.

person John Decruz    schedule 20.12.2014