ranio Ответов: 2

Как избежать ошибки "не удается найти службу на вашем компьютере.доступ запрещен"


Я пытаюсь запустить службу windows из интерфейса приложения windows в C# при нажатии кнопки. Он отлично работает на моей машине

Но на другом сервере я получаю сообщение об ошибке "не удается найти службу на вашем компьютере. Система.ComponentModel.Win32Exception: Доступ запрещен".

Что я уже пробовал:

Код выглядит следующим образом:
#region StartService
    //To start Windows Service exe created and installed in Services.msc
    public bool StartService(string serviceName)
    {

        ServiceController sc = new ServiceController(serviceName);
        Archive AC = new Archive();
        //String ErrorLogPath = System.Configuration.ConfigurationSettings.AppSettings["ErrorLogPath"].ToString();
        string ErrorLogPath = ConfigurationSettings.AppSettings["ErrorLogPath"].ToString();
        string ErrorFilename = ErrorLogPath + "WPS_Archive_ErrorFile" + ".txt";

        try
        {
            if ((sc.Status.Equals(ServiceControllerStatus.Running)))
            {
                // Check whether the service if the current status is Running.

                return true;

            }
            else
            {

                sc.Start();
                return true;

            }


        }
        catch (Exception ex)
        {
            AC.WriteTextFile(ErrorFilename, " Service not started " + Environment.NewLine + ex.ToString());

            //}
            MessageBox.Show("Service not started, " + ex.Message);
        }
        return false;
    }
    #endregion

F-ES Sitecore

Давайте начнем с самого начала. Установлена ли служба на этой машине? Можете ли вы запустить и остановить его из диспетчера службы?

2 Ответов

Рейтинг:
2

Jochen Arndt

Учетная запись пользователя, запускающая ваше приложение, не имеет разрешения на запуск служб. Вы должны запустить приложение от имени пользователя, у которого есть разрешение. То есть: запустите его от имени администратора (вероятно, в вашей системе) или дайте конкретному пользователю разрешение на запуск служб.


Рейтинг:
1

#realJSOP

Для установки службы вам нужны права администратора. Это означает, что приложение, используемое для установки службы, должно запускаться от имени администратора.