Inicie o Serviço Windows programaticamente

Estou tendo um problema com um aplicativo que estou criando. Estou tentando iniciar um serviço windows através do meu aplicativo c #. Quando clico no botão Iniciar, parece que tudo passa, mas quando faço logon no servidor, o serviço ainda não mostra que está em execução. No entanto, na segunda vez em que o executo, recebo uma exceção informando que a instância do serviço já está em execução. Novamente, quando entro no servidor, o serviço parece estar parado. Alguém já viu isso

qui está o meu códig

try
{
    while (reader.Read())
    {
        int timeoutMilliseconds = 1000;
        string serviceName = reader["ServiceName"].ToString();
        string permission = reader["Permission"].ToString();

        if (permission == "E")
        {
            lblServStartSuccess.Visible = true;

            ServiceController service = new ServiceController(serviceName);
            TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

            service.Start();
            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
        }
        else
        {
            lblServErrorStart.Visible = true;
        }
    }
}
catch (Exception ex)
{
    Response.Write(ex.ToString());
}

EDITAR Aqui está a exceção que recebi em um serviço:

System.InvalidOperationException: o serviço administrativo do Logical Disk Manager não foi encontrado no computador '.'. ---> System.ComponentModel.Win32Exception: o serviço especificado não existe como um serviço instalado --- Fim do rastreamento da pilha de exceção interna

Sei que o serviço existe. Preciso adicionar algo na frente do serviço para informar em qual servidor procurar?

questionAnswers(6)

yourAnswerToTheQuestion