Условие запуска - проверьте, работает ли служба - PullRequest
1 голос
/ 22 апреля 2010

В VS2008, как я могу проверить, работает ли служба Windows в условиях запуска?

Ответы [ 2 ]

2 голосов
/ 22 апреля 2010

Вы можете подключиться к услуге следующим образом:

ServiceController sc = new ServiceController("ServiceName");

Вы можете проверить, работает ли служба, проверив свойство «Статус».Status возвращает значение (перечисление) типа ServiceControllerStatus.

2 голосов
/ 22 апреля 2010

Подробнее о том, как проверить, что служба работает в условиях запуска, см. этот поток,

Самым надежным настраиваемым действием будет вызов C ++ Dll, вставленный до Действие LaunchConditions как в пользовательском интерфейсе, так и в последовательности Execute.

Здесь есть один пример:

http://support.microsoft.com/default.aspx?scid=kb;en-us;253683.

Ваш код пользовательского действия может проверить работоспособность службы и установить свойство для условий запуска.

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

ServiceController[] scServices;
scServices = ServiceController.GetServices();

// Display the list of services currently running on this computer.

Console.WriteLine("Services running on the local computer:");
foreach (ServiceController scTemp in scServices)
{
    if (scTemp.Status == ServiceControllerStatus.Running)
    {
        // Write the service name and the display name
        // for each running service.
        Console.WriteLine();
        Console.WriteLine("  Service :        {0}", scTemp.ServiceName);
        Console.WriteLine("    Display name:    {0}", scTemp.DisplayName);
    }
}
...