Как остановить службу в методе OnStart? - PullRequest
5 голосов
/ 20 мая 2009

Я пишу службу Windows в .net 2.0.

Что мне делать в методе OnStart(), если по какой-то причине я не хочу, чтобы моя служба запускалась? Могу ли я просто вызвать метод Stop() базового класса (ServiceBase)? Я попробовал это, и получаю некоторые забавные исключения доступа к памяти. Требуется ли запускать отдельный поток для вызова метода Stop()?

Ответы [ 3 ]

8 голосов
/ 20 мая 2009

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

0 голосов
/ 20 мая 2009

Вы можете использовать Environment.FailFast () . Просто знайте, что он игнорирует любые блоки try-catch-finally.

0 голосов
/ 20 мая 2009

Используйте ServiceController и остановите его, затем немедленно верните.

...