Запрос статуса службы Windows в C # в веб-приложении - PullRequest
1 голос
/ 22 октября 2009

Мы используем объект 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?

Спасибо!

1 Ответ

0 голосов
/ 24 октября 2009

Я думал, что веб-приложения должны запускаться в песочнице. Разрешение доступа к службе, работающей на локальном компьютере, не совсем то, что вам следует делать из-за проблем безопасности.

Может быть, вы могли бы рассказать нам, что вы хотите сделать, и есть другое решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...