C #: Как мне запустить несколько служб Windows как один сервис? - PullRequest
0 голосов
/ 22 июня 2011

У меня есть три службы Windows в одном проекте C #. Используя класс установщика (он содержит три установщика служб и один установщик процессов), я смог установить все свои службы и запустить их как три разные службы Windows.

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

Заранее спасибо!

Ответы [ 3 ]

4 голосов
/ 22 июня 2011

У вас может быть только одна основная служба, которая порождает другие исполняемые файлы как обычные процессы (см. Process.Start(..)), которые не будут отображаться как службы Windows. Эта служба должна контролировать время жизни зависимых процессов (запускать их после запуска службы / останавливать их перед выключением).

1 голос
/ 22 июня 2011

Создайте новую службу Windows и запустите 3 потока.

0 голосов
/ 22 июня 2011

Все, что вам нужно сделать, это реализовать некоторые принципы повторного использования кода.

Переместите каждое из соответствующих рабочих подразделений в классы / библиотеки, а не в службы. Создайте единый сервис, ссылающийся на библиотеки конечных результатов. Ваше служебное намерение, скорее всего, является таймером какого-то рода и, возможно, обнажает конечные точки API. Создайте единый сервис и активируйте необходимые классы из 3-х уникальных таймеров (при необходимости - вам может понадобиться один таймер, активирующий 3 разных метода классов). Оборачивайте события или конечные точки API аналогичным образом. Сервисы должны содержать мало или не иметь «бизнес» логики, они должны получать эту работу из бизнес-библиотек, на которые ссылаются. Следуйте этой практике, и ваш вопрос в основном ответит сам.

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