Manejar la excepción en el inicio del servicio

Estoy escribiendo una serie de servicios de Windows. Quiero que fallen si se producen errores durante el inicio (enOnStart() método). Yo había asumido que simplemente lanzando un error enOnStart() haría esto, pero me doy cuenta de que, en cambio, "comienza" y me presenta un mensaje que dice "El servicio comenzó, pero está inactivo. ¿Es correcto?" (Paráfrasis). ¿Cómo manejo el error para que realmente no pueda iniciar el servicio?

Respuestas a la pregunta(3)

Su respuesta a la pregunta