Windows services 与Windows服务通信

Windows services 与Windows服务通信,windows-services,Windows Services,我正在寻找使用Windows服务管理一组对象以供多个不同客户端程序使用的最佳方法。服务必须 创建与物理或虚拟设备对应的对象列表 维护关于当前正在使用给定设备的流程以及可使用的设备的信息 通过进程管理使用给定设备的请求 将设备返回到未使用状态 但是,当我查看Windows服务示例时,与服务的通信非常有限。OnCustomCommand不会向调用者返回任何信息 那么,有没有一种推荐的方法可以在服务和各种客户机之间建立信息交换呢 背景-我正在用.Net应用程序替换Win32/COM应用程序。当前设备管

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

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

    那么,有没有一种推荐的方法可以在服务和各种客户机之间建立信息交换呢


    背景-我正在用.Net应用程序替换Win32/COM应用程序。当前设备管理器是一个COM服务器,客户端是COM客户端。

    您可以在Windows服务中始终实现WCF服务,以便与外部世界通信。它可以使用HTTP或Net/TCP(在企业局域网环境中)或其他传输(如MSMQ消息队列,如果合适)来实现

    当Windows服务启动时,您还可以启动WCF
    ServiceHost
    来处理这些通信需求

    见:


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

    比我快几秒钟。另外,如果所有通信都是本地的,那么您可以使用命名管道(
    net.pipe
    )进行非常快速的通信。Josh,请回答您的评论,因为到目前为止,我认为第三方解决方案有问题。然而,考虑到他正在转向.NET,WCF是我的建议,因为它包含在.NET框架中。