Перезапустите службу Windows при сбое - PullRequest
1 голос
/ 10 июня 2009

У нас есть служба Windows, написанная на .net, где размещается служба WCF. У меня вопрос: можно ли отслеживать и перезапускать сервис по любой ошибке, в другом мире я хочу, чтобы мой сервис перезапускался автоматически при любой ошибке.
Большое спасибо

Ответы [ 5 ]

5 голосов
/ 10 июня 2009

Пуск / Панель управления / Службы / Щелкните правой кнопкой мыши свой сервис / Свойства / Первый сбой: перезапустите сервис / Второй сбой: перезапустите сервис / Последующий сбой: перезапустите сервис.

Должен это сделать.

2 голосов
/ 10 июня 2009

Зайдите в диспетчер сервисов в ОС, щелкните правой кнопкой мыши свой сервис и выберите свойства. Там вы найдете вкладку восстановления, которая позволяет вам определять поведение при сбоях.

1 голос
/ 03 августа 2010

В пределах одной службы Windows может быть несколько служб WCF. Вы можете обработать событие Faults класса ServiceHost для отдельной службы WCF и повторно инициализировать его.

0 голосов
/ 10 июня 2009

Я думаю, вы должны подумать о дизайне вашего сервиса. Он должен быть хостом для процесса wcf. Вы можете сделать 3 темы:

  • Главный поток (останавливается только при ошибке v FATAL)

  • Поток ExceptionHandler (обрабатывает «ожидаемые» исключения и ведет запись в журнал и заботится о смерти потока WCFHost)

  • Поток WCFHost (размещает службу WCF и может умирать столько раз, сколько ему захочется, ExceptionHandler может позаботиться об этом сейчас.)

0 голосов
/ 10 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...