Почему не делает RequestAdditionalTime () работа метода над перезапуском в Vista/7?

Я делал некоторое обширное тестирование службы Windows, которую я писал в.Net 3.5 C#. Я испытываю затруднения, заставляя Windows дать мне достаточно времени для моего сервиса для завершения работу правильно, когда я перезапускаю или завершаю работу компьютера даже при том, что я вызов RequestAdditionalTime () метод, который должен обновить SCM и поддерживать мой сервис в рабочем состоянии. Мой код работает правильно, если я вручную останавливаю сервис как бы то ни было. Я, прежде всего, тестировал этот код в Windows Vista и Windows 7 после решения протестировать код в Windows XP, все работало отлично. Кто-либо знает, почему этот вызов не работает в Vista/7? Я думаю, что мне нужно некоторое разрешение помешать системе закрывать это, я добираюсь по умолчанию в Xp, но не в Vista/7.

7
задан Kam Sheffield 6 January 2010 в 06:45
поделиться

2 ответа

[

]Если система не отключается, ваша служба может запросить дополнительное время, и ваш процесс не будет прерван.[

] [

]Если система отключается, ваша служба должна быть отключена. Вы не получите даже обычных 30 секунд, которые обычно получает сервис. Выключение более мощное, чем раньше.[

]
6
ответ дан 7 December 2019 в 05:23
поделиться

В случае не выключения функция RequestAdditionalTime() должна вызываться чаще, чем каждые 2 минуты:

    protected override void OnStop()
    {
        Thread.Sleep(60000);
        RequestAdditionalTime(180000);
        Thread.Sleep(60000);
        RequestAdditionalTime(180000);
        Thread.Sleep(5000);
    }

Обратите внимание, что, несмотря на название, параметр времени является общим запрашиваемым временем выключения.

2
ответ дан 7 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: