2011-12-21 5 views
2

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

ответ

6

Если вы говорите, что вы хотите просто начать и остановить Service2, то да, ServiceController.

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

Надеются, что это помогает

7

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

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

Basic WCF Tutorial with examples

More complex WCF, if you wanted to 'fake' delegates for example

Надежда, что помогает.