Связь со службой Windows - PullRequest
4 голосов
/ 21 июля 2010

Я ищу лучший способ использования службы Windows для управления группой объектов для использования несколькими различными клиентскими программами. Служба должна

  1. создать список объектов, соответствующих физическим или виртуальным устройствам,
  2. сохранить информацию о том, какой процесс в данный момент использует данное устройство и какие устройства доступны для использования,
  3. управлять запросами на использование данного устройства процессом,
  4. возврат устройств в неиспользуемое состояние.

Однако, когда я смотрю на примеры Служб Windows, связь со Службами очень ограничена. OnCustomCommand не возвращает никакой информации вызывающей стороне.

Так есть ли рекомендуемый способ наладить обмен информацией между службой и различными клиентами?

Для фона - я заменяю приложение Win32 / COM на приложение .Net. Текущий диспетчер устройств - это COM-сервер, клиенты которого являются COM-клиентами.

Ответы [ 2 ]

5 голосов
/ 21 июля 2010

Вы всегда можете внедрить службу WCF в своей службе Windows для связи с внешним миром.Это будет сделано с использованием HTTP или Net / TCP (в среде корпоративной локальной сети) или других транспортных средств (например, очереди сообщений MSMQ, если это необходимо).

Когда служба Windows запускается, вы также можете вызватьWCF ServiceHost для удовлетворения этих потребностей в связи.

См .:

0 голосов
/ 21 июля 2010

Просто опция - MsgConnect библиотека для прозрачной связи между приложениями в одной или разных системах. Разработан специально для вашей задачи (связь между сервисом и графическим интерфейсом). С MsgConnect вы можете отправлять и получать сообщения (как и в Windows), которые содержат пользовательские данные. В локальной системе сообщения могут передаваться с использованием MMF или сокетов, для удаленной связи могут использоваться сокеты TCP или HTTP.

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