Как связаться между контроллером сервиса и сервисом / демоном? - PullRequest
0 голосов
/ 20 апреля 2010

Легко отображать состояние службы Windows или управлять им (запуск / остановка) из приложения с графическим интерфейсом, но возникает вопрос, как насчет получения / отправки уведомлений от службы? Как: сервис, сообщающий пользователю, который отслеживает, что ему нужно внимание.

Учтите, что в многопользовательской среде можно одновременно запустить несколько контроллеров.

Знаете ли вы пример (с открытым исходным кодом) для такого рода коммуникации?

Дополнительные баллы за независимое от платформы решение:)

Ответы [ 2 ]

0 голосов
/ 20 апреля 2010

Как вариант, используйте наш MsgConnect (бесплатно с источником) для отправки сообщений между службами и контроллерами (кроссплатформенность). Связь между сервисами и контроллерами возможна как локально (через MMF или транспорт сокетов), так и удаленно (через транспорт сокетов).

0 голосов
/ 20 апреля 2010

Если «пользователь», наблюдающий за службой, - это человек, как насчет записи в журнал событий и последующей отправки оповещений вашей системой мониторинга корпоративных событий. Или же служба должна зарегистрировать проблему в журнале событий, а затем отправить электронное письмо.

Если «пользователь» или клиент службы является отдельным или несколькими приложениями, здесь есть пара соображений, не полностью понимая вашу проблему.

  1. Запись в файл. Попросите клиента сообщить службе, какой файл или какой-либо согласованный токен для создания файла для этого конкретного экземпляра клиента, а затем попросите службу записать в файл. Затем клиент может отслеживать файл.
  2. Статус Ping. Попросите клиента регулярно пропинговать сервис в фоновом потоке, чтобы узнать, как он работает. В противном случае клиент может пропинговать сервис для получения дополнительной информации. Вроде как получить LastMessage.
  3. Открытые сокеты или конечная точка. Найдите способ настроить связь обратно из службы, чтобы служба могла позвонить клиенту. Это может быть инициировано клиентом, который сначала сообщает службе, где она находится, чтобы он мог перезвонить. Я забыл подробности, но WCF должен быть в состоянии обработать это из коробки для вас. Если вы хотите что-то более общее, вам, возможно, придется свернуть свое собственное.
Надеюсь, что эти идеи помогут.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...