与Windows服务通信

时间:2010-07-20 21:27:17

标签: windows-services

我正在寻找使用Windows服务来管理一组对象以供多个不同客户端程序使用的最佳方法。该服务必须

  1. 创建与物理或虚拟设备对应的对象列表
  2. 维护有关当前使用给定设备的进程以及可以使用的设备的信息,
  3. 管理进程使用给定设备的请求,
  4. 将设备恢复到未使用状态。
  5. 但是,当我查看Windows服务示例时,与服务的通信非常有限。 OnCustomCommand不会向调用者返回任何信息。

    那么是否有推荐的方法在服务和各种客户之间建立信息交换?

    对于后台 - 我正在用.Net应用程序替换Win32 / COM应用程序。当前设备管理器是COM服务器,客户端是COM客户端。

2 个答案:

答案 0 :(得分:5)

您始终可以在Windows服务中实现WCF服务以与外界进行通信。它可以使用HTTP或Net / TCP(在公司LAN环境中)或其他传输(如MSMQ消息队列,如果适用)。

当Windows服务消失时,您还可以调出一个WCF ServiceHost来处理这些通信需求。

请参阅:

答案 1 :(得分:0)

只是一个选项 - MsgConnect库,用于在相同或不同系统上的应用程序之间进行透明通信。专门针对您的任务(服务GUI通信)而设计。使用MsgConnect,您可以发送和接收带有自定义数据的消息(就像在Windows中一样)。在本地系统上,可以使用MMF或套接字传输消息,对于远程通信,可以使用TCP套接字或HTTP。