【问题标题】:How to call Windows services created with .NET?如何调用使用 .NET 创建的 Windows 服务?
【发布时间】:2012-03-22 12:25:08
【问题描述】:

我有一个基本的 Windows 服务,可以进行一些数据转换。有解耦的 GUI,允许用户更改一些配置,这需要推广到正在运行的 Windows 服务。它们都运行同一个机器并使用 C# .NET 实现。除了进程间通信机制(如互斥锁、事件等)之外,这是与服务通信的最佳方式。 此外,我想避免将其实现为 Web 服务,因为它不是 Web 服务。

【问题讨论】:

  • 是的,我用 WCF 做了类似的事情

标签: c# .net windows windows-services


【解决方案1】:

我会使用 WCF 服务进行通信。

您可以使用 netNamedPipe 绑定,但这可能不适用于 Windows 2008/Windows 7,因为服务在会话 0 中运行并且所有用户代码都在会话 >0 中运行并且它们将无法通信。

所以我在自己的项目中使用了 netTcpBinding。

【讨论】:

    【解决方案2】:

    如果进程不打算移动到不同的机器上,你可以使用memory mapped files作为通信机制。

    如果不是这样,WCF 是一个不错的选择。

    【讨论】:

      【解决方案3】:

      由于您正在处理服务的配置数据,因此我会将其保存在某个地方。数据库、文件、注册表等。UI 写入信息,服务在适当时读取信息(例如每次运行)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-19
        相关资源
        最近更新 更多