Запустите сервис с другого компьютера - PullRequest
2 голосов
/ 03 февраля 2011

У меня есть проект, в котором мы хотели бы сделать следующее:

  • Установить службу, которая выполняет несколько задач.это будет установлено на компьютере A и B
  • Другой компьютер C выступает в качестве свидетеля;
  • При запуске выполняется только A, поскольку выполняемая работа не может дублироваться;
  • Если A потерпит неудачу, B должен начать.C должен быть тем, который проверяет, работает он или нет;
  • Sholud A возвращает резервную копию после сбоя, затем B все еще работает, и A находится в режиме ожидания;
  • Если B тогдаошибка, C запускает службы A,
  • и т. д.

Возможно ли это, если да, то как?И на A, и на B установлен SQL Server 2008, но эта часть позаботилась о нас.

Большое спасибо.

РЕДАКТИРОВАТЬ: я попытался остановить службу (я знаю, что работает) и похоже, что он не работает:

</p> <pre><code> Dim path As ManagementPath = New ManagementPath path.Server = System.Environment.MachineName path.NamespacePath = "root\CIMV2" path.RelativePath = "Win32_service.Name='" + strServiceName + "'" Dim service As ManagementObject = New ManagementObject(path) Dim temp As ManagementBaseObject = service.InvokeMethod("StopService", Nothing, Nothing)

В этом случае strServiceName - это «CommunicationInterface», который я недавно добавили запустил вручную.

Я работаю под Windows 7.

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Вам следует изучить отказоустойчивые кластеры Windows Server 2008 . С этой страницы:

Отказоустойчивый кластер - это группа независимые компьютеры, которые работают вместе, чтобы увеличить доступность приложений и услуг. кластерные серверы (называемые узлами) соединены физическими кабелями и программного обеспечения. Если один из узлов кластера не удается, другой узел начинает предоставлять служба (процесс, известный как аварийное переключение). Пользователи испытывают минимум перебои в обслуживании.

1 голос
/ 03 февраля 2011

Просто установите службы так, чтобы они не запускались автоматически, и затем компьютер C запускает их по мере необходимости, используя класс WMI Win32_Service . Вы также можете использовать этот класс для запроса, запущены службы или нет.

Посмотрите методы StartService и StopService , а также свойство State.

Вот пример кода: Управление службами в VB.NET

...