System.ComponentModel.Win32Exception: доступ запрещен Ошибка

Я использую код С# для запуска и остановки окна, но я получаю эту ошибку.

System.ComponentModel.Win32Exception: Access is denied

Мой код:

 public void StartService(string serviceName, int timeoutMilliseconds)
    {
        ServiceController service = new ServiceController(serviceName);
        try
        {
            TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

            service.Start();
            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
            lblMessage.Text = "Service Started.";
        }
        catch (Exception ex)
        {
            //lblMessage.Text = "Error in Service Starting.";
            lblMessage.Text = ex.ToString();
        }
    }

Ответ 1

Убедитесь, что ваша учетная запись пула приложений на вашем сервере имеет разрешения на запуск этой службы. Он работает на вашем сервере разработки ASP.NET, потому что он работает под учетной записью пользователя (admin). В конфигурации IIS по умолчанию эта учетная запись является службой сети или ApplicationPoolIdentity (в зависимости от версии IIS) и обычно не может управлять службами.

Итак, измените учетную запись пула в диспетчере IIS (пулы приложений /NameOfYourYourPool/Дополнительные настройки). Вы можете использовать встроенную учетную запись или использовать один из своих доменов.

apppool

Ответ 2

Запустите VS в режиме администратора и загрузите проект. Откройте разработчика VS cmd в режиме администратора. Дайте правильное имя пользователя с именем домена компьютера, таким как domainname\username.Hope, он будет работать.