Доступ запрещен при запуске / остановке службы Windows с ASP - PullRequest
1 голос
/ 17 октября 2019

Я написал веб-приложение ASP.NET, в котором отображаются все установленные службы для нашего продукта. Мое приложение может получить информацию о состоянии службы (работает, остановлен, ...).

Кроме того, мое приложение должно иметь возможность запускать остановленную службу и останавливать работающую службу. На моей локальной машине это работает, на сервере - нет. В настоящее время я настроил веб-приложение на использование администратора, но оно не запускается. Просмотр событий показывает, что в доступе отказано:

Process information: 
    Process ID: 5348 
    Process name: w3wp.exe 
    Account name: IIS APPPOOL\ServiceManager 

Exception information: 
    Exception type: Win32Exception 
    Exception message: Access is denied



Request information: 
    Request URL: http://X/ServiceMonitor/StopService/25 
    Request path: /ServiceMonitor/StopService/25 
    User host address: X 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: X\Administrator 

Thread information: 
    Thread ID: 23 
    Thread account name: X\Administrator 
    Is impersonating: False 
    Stack trace: 

Есть идеи, что я пропустил?

Так же, как дополнительная информация, здесь моя функция StartService. Но это не должно быть проблемой, так как он работает на моей локальной машине:

public bool StartService()
{
    ServiceController service = new ServiceController(_serviceName,_machineName);
    if (!new[] { ServiceControllerStatus.Running, ServiceControllerStatus.StartPending }.Contains(service.Status))
        service.Start();

    service.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromMinutes(2));

    return service.Status == ServiceControllerStatus.Running;
}

1 Ответ

1 голос
/ 18 октября 2019

Пользователь iis или пул приложений iis не имеют достаточных прав для запуска или остановки службы Windows. поэтому вам нужно добавить iusr, iis_iusrs или APPPOOL \ ServiceManager в группу администраторов, чтобы вы могли получить доступ к службе Windows. Этот способ прост, но не рекомендуется. другим способом вы могли бы использовать учетную запись, у которой достаточно прав для доступа к службе Windows и настроить ее в пользовательской учетной записи пула приложений iis. Вы можете найти этот параметр в настройках продвижения пула приложений.

enter image description here

...