【问题标题】:capture events from windows service从 Windows 服务捕获事件
【发布时间】:2012-11-09 03:35:04
【问题描述】:

我构建了一个 Windows 服务,我们称之为 Jobs。我有一个 WinForm 应用,我们称之为 Viewer。

我希望 Viewer 在 Jobs 开始执行某事时接收来自 Jobs 的事件,以便 Viewer 可以向用户显示 Job A 开始、执行某事、停止等。

有没有办法让 Jobs 抛出 Viewer 可以注册接收的事件?我能想到的最好的解决方案是使用 MSMQ,但是我想要一种更直接的方法,我启动 Viewer 并注册到 Jobs Windows 服务并要求从它接收通知/事件。

我似乎无法弄清楚如何在不使用 MSMQ 的情况下让 Windows 服务推送某些内容,或者让其他程序向它注册以接收推送。我绝对不想使用一些奇怪的文件和/或数据库系统,其中 Viewer 会休眠 5 秒,然后检查更改。我想要简化查看器等待事件的地方,但不必使用 MSMQ。

【问题讨论】:

    标签: windows-services msmq


    【解决方案1】:

    您可以为此使用 WCF 双工绑定之一,例如 netTcpBinding 或 dualHttpBinding。有一个完整的示例 here 似乎完全符合您的要求。

    缺点是双工理解起来很复杂,而且可能不那么可靠。如果可以选择的话,我总是会使用单向通信(通过排队或其他机制)来实现解决方案。一种方式总是比双工更简单、更可靠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多