Назад | Перейти на главную страницу

Доступ запрещен при доступе к контроллеру службы из приложения

У меня есть веб-приложение, написанное на C # mvc, которое пытается проверить статус службы Windows, остановлена ​​она или запущена. Я написал код, но проблема в том, что код отлично работает на моей локальной машине разработчика, но при отправке на сервер код ошибки, указывающий, что доступ запрещен.

У меня такой код:

            try
            {
                using (ServiceController sc = new ServiceController("Service"))
                {
                    if (sc.Status == ServiceControllerStatus.Running)
                    {
                        //do something
                    }
                }
            }
               catch (Exception ex) { }; 
           } 

Приведенный выше код продолжает давать сбой в самом контроллере службы.

Я также попытался использовать приведенный ниже код:

    StringBuilder sb = new StringBuilder();
    Process process = new System.Diagnostics.Process();
    ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();

    startInfo.FileName = @"sc";
    startInfo.Arguments = "query \"My Service\"";
    startInfo.UseShellExecute = false;
    process.StartInfo = startInfo;
    process.OutputDataReceived += (sender, args) => 
    sb.AppendLine(args.Data);
    process.StartInfo.RedirectStandardOutput = true;
    process.Start();
    process.BeginOutputReadLine();
    process.WaitForExit();

Оба приведенных выше кода продолжают давать сбой в самом сервисном контроллере / SC.

Ошибка

Не удается открыть диспетчер управления службами на компьютере ".". Для этой операции могут потребоваться другие привилегии.

Наше приложение работает в IIS под учетной записью службы, и мы предоставили этой учетной записи права администратора и права удаленного доступа.

Не уверен, что еще нужно здесь дать. Есть ли какие-то особые права на доступ к службе Windows?

Попробуйте запустить свой код как «LocalSystem», там тоже хороший фон; https://stackoverflow.com/questions/39326284/cant-query-run-or-stop-a-windows-service