остановка сервиса во время выключения винды
От: UberPsychoSvin  
Дата: 07.02.14 07:11
Оценка:
1) В ServiceBase есть метод OnShootdown();
Я хочу нормально завершить работу сервиса. Но винда просто киляет мой сервис, до того как я обработаю эту ситуацию.

2) Сервис зависит от Sql сервиса. При перезагрузке винда отрубает его перед нашим сервисом, и в лог валятся ошибки. Как такую ситуацию нормально обработать?
Re: остановка сервиса во время выключения винды
От: RushDevion Россия  
Дата: 07.02.14 07:22
Оценка: 3 (1) +1
1) Можно запросить дополнительное время на шатдаун через RequestAdditionalTime(extraTimeslot), но в любом случае это не больше чем HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout. По-умолчанию 20 секунд.
2) Можно попробовать прописать SQL в зависимости твоего сервиса. Вот так например. Не знаю только учитываются ли зависимости при шатдауне.

Еще можно проверять, запущен ли SQL-ный сервис, e.g.
ServiceController sc = new ServiceController(SERVICENAME);
sc.Status == ServiceControllerStatus.Running
Re[2]: остановка сервиса во время выключения винды
От: UberPsychoSvin  
Дата: 07.02.14 07:43
Оценка: -1
Здравствуйте, RushDevion, Вы писали:

RD>1) Можно запросить дополнительное время на шатдаун через RequestAdditionalTime(extraTimeslot), но в любом случае это не больше чем HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WaitToKillServiceTimeout. По-умолчанию 20 секунд.

RD>2) Можно попробовать прописать SQL в зависимости твоего сервиса. Вот так например. Не знаю только учитываются ли зависимости при шатдауне.

RD>Еще можно проверять, запущен ли SQL-ный сервис, e.g.

RD>
RD>ServiceController sc = new ServiceController(SERVICENAME);
RD>sc.Status == ServiceControllerStatus.Running
RD>

помоему лучше пускай он киляется нафих.
Re: остановка сервиса во время выключения винды
От: akasoft Россия  
Дата: 09.02.14 17:12
Оценка: -1
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>2) Сервис зависит от Sql сервиса. При перезагрузке винда отрубает его перед нашим сервисом, и в лог валятся ошибки. Как такую ситуацию нормально обработать?


Выставить зависимости. Тогда Windows будет сначала рубить твою службу, затем службу SQL Server.
... << RSDN@Home 1.2.0 alpha 5 rev. 66>> SQL Express 2012
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.