Como capturar uma exceção e interromper o serviço Topshelf?

Eu tenho um serviço do Windows na prateleira superior onde desejo fazer uma verificação (ou seja, se existe um arquivo xml) e se a verificação falhar, preciso que o serviço do Windows pare.

Então, tentei fazer a verificação no método Start () e, em seguida, criei uma exceção:

public void Start()
{
    if (!File.Exists(_xmlFile) throw new FileNotFoundException();
    // Do some work here if xml file exists.
}

No entanto, o serviço do Windows permanece como um processo após a exceção, que eu tenho que eliminar manualmente no gerenciador de tarefas.

Existe uma maneira de não executar o serviço se determinadas condições (ou seja, arquivo não encontrado) forem mantidas?

questionAnswers(6)

yourAnswerToTheQuestion