Мы используем объект ServiceController для запроса, работает ли наш Сервис или нет. Наше веб-приложение, выполняющее запрос, использует олицетворение для безопасности / входа в систему.
System.ServiceProcess.ServiceController sc = new System.ServiceProcess.ServiceController("myService");
return sc.Status
При использовании учетной записи администратора запрос выполнен успешно. При использовании ограниченной учетной записи (не являющейся администратором) запрос не выполняется с сообщением «Служба myService не найдена на компьютере». «» ... НО это происходит только в Windows Server 2003, а не в Windows XP.
Я прогуглил это и проверил в MSDN. Я не нашел ничего, связанного с использованием ServiceController в Windows Server 2003.
Есть идеи?
РЕДАКТИРОВАТЬ: Если есть способ запросить статус службы без использования ServiceController, который не включает привилегии «безопасности», это может работать для нас. Нам просто нужно получить статус услуги.
UPDATE:
Я создал простое консольное приложение, которое будет печатать статус сервиса. Я использовал команду «runas» для запуска приложения, используя учетную запись администратора и администратора. Оба работали в Windows Server 2003 ... Что означает, что проблема заключается в том, что привилегия не была должным образом передана вызову ServiceController в веб-приложении? Что может быть в безопасности IIS?
Спасибо!