Проверка на незарегистрированный / отсутствующий сервис - PullRequest
2 голосов
/ 13 октября 2009

Как я могу использовать ServiceController, чтобы сообщить мне, была ли зарегистрирована служба или нет? В приведенном ниже фрагменте кода проверка на пустое DisplayName приводит к исключению System.InvalidOperationException.

Есть ли простой способ сделать это, что я полностью скучаю?

ServiceController sc = new ServiceController("TestService");

if (sc.DisplayName == null)
{
     // unregistered or missing service
}

1 Ответ

3 голосов
/ 13 октября 2009

Посмотрите на решение ниже ... Не похоже, что вы можете ...

Из документов :

Вы можете использовать ServiceController класс для подключения и контроля поведение существующих сервисов.

То, что читается как службы, должно быть уже зарегистрировано, чтобы ServiceController мог с ними работать.

Полагаю, вы могли бы просто перехватить исключение (указав, что сервис не существует), но это не кажется действительно исключительным, не так ли?

Решение:

Использование

var services = ServiceController.GetServices(machineName)

и найдите в массиве нужные вам услуги. Если вы просто работаете с локальным ящиком, вы можете опустить аргумент machineName.

http://msdn.microsoft.com/en-us/library/s21fd6th.aspx

...