Исключение ServiceController (невозможно управлять службой на компьютере '.'.) - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь отправить команду своей службе TestService из программы, запущенной от имени администратора, я могу запустить / остановить ее нормально, но всякий раз, когда я пытаюсь выполнить ExecuteCommand (), я сталкиваюсь с исключением: *

Невозможно управлять службой на компьютере '.'.

        try
        {
            System.ServiceProcess.ServiceController service = new System.ServiceProcess.ServiceController("TestService");
            
            if (service.Status == ServiceControllerStatus.Stopped)
            {
                service.Start();
                service.WaitForStatus(ServiceControllerStatus.Running);
            }

            service.ExecuteCommand(100); // Causes Exception every time
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
            throw e;
        }

1 Ответ

0 голосов
/ 12 июля 2020

Это происходит потому, что ExecuteCommand принимает только целые числа: 128-256, все, что меньше 128, зарезервировано системой, а поскольку 100 передается, возникает исключение.

Замена service.ExecuteCommand(100) чем-то вроде service.ExecuteCommand(130) будет работают нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...