Если главное, чтобы окно «Службы» сообщало о том, что произошла ошибка, из того, что я пробовал (.net 3.5 в Windows 7), единственный способ сделать это - установить ExitCode. Я рекомендую установить его на 13816, так как это приводит к сообщению «Произошла неизвестная ошибка». См. коды ошибок Windows .
Пример ниже выполняет три вещи. 1 - установка ExitCode приводит к полезному сообщению для конечного пользователя. Это не влияет на журнал приложений Windows, но включает в себя сообщение в системном журнале. 2 - Вызов Stop приводит к появлению сообщения «Служба успешно остановлена» в журнале приложений. 3 - создание исключения приводит к полезной записи в журнале приложений.
protected override void OnStart(string[] args) {
try {
// Start your service
}
catch (Exception ex) {
// Log exception
this.ExitCode = 13816;
this.Stop();
throw;
}
}