Я написал веб-приложение 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;
}