Связь со службой Windows с помощью класса ServiceController - PullRequest
2 голосов
/ 21 декабря 2011

У меня есть проект служб Windows, состоящий из двух служб, service1 и service2. Как мы можем общаться между двумя службами? Например, как мы можем запустить service2 с помощью service1? Могу ли я использовать класс ServiceController для этого? Что бы вы предложили сделать это?

Ответы [ 2 ]

7 голосов
/ 21 декабря 2011

Класс ServiceController включает методы ExecuteCommand, которые принимают int. Таким образом, ваши две службы могут связываться друг с другом, отправляя друг другу сообщения ExecuteCommand, если вы можете использовать очень ограниченные параметры.

Однако, как комментирует другой автор, WCF может быть лучшим ответом. Вы можете создавать именованные каналы или использовать HTTP между двумя сервисами. Две хорошие учебные страницы можно найти ниже.

Базовый учебник WCF с примерами

Более сложный WCF, если вы хотите «подделать» делегатов, например

Надеюсь, это поможет.

6 голосов
/ 21 декабря 2011

Если под «связью» подразумевается только запуск и остановка Service2, тогда да, следует использовать ServiceController.

Если вам нужен другой тип связи, например, передача некоторых данных от одного к другому, чем ServiceController не поможет, вы должны использовать WCF

Надеюсь, это поможет

...