【发布时间】:2025-12-30 03:45:06
【问题描述】:
我正在开发 2 个 Windows 服务。对于服务 #2,我希望它在服务 #1 完成任务后开始执行此操作。
所以我想从 Service #1 中触发一个事件,并在 Service #2 中处理引发的事件。 2个独立的Windows服务是否可以以这种方式进行通信?如果是这样,有人可以提供这个样本或至少指出我正确的方向吗?如果没有,还有其他关于如何让服务 #2 空闲直到服务 #1 完成的其他建议?
编辑: 我的场景是服务 #1 下载各种数据,分析并将值插入数据库。然后,我希望 Service #2 对新插入的数据进行额外处理。我不想只设置一个计时器/调度程序并不断让服务 #2 轮询数据库,而是在服务 #1 的任务完成时做出反应。
我已经通过一些搜索看到了内存映射文件的概念,但不知道这是否是我正在尝试做的简单方法。对 WCF 了解不多,因为我从未使用过它们。但它不需要我设置一个 IIS 吗?如果是这样,那绝对不是我愿意投入大量时间的事情。
现在,(如果无法响应来自另一个 Windows 服务的事件)我正在考虑使用 SQL Server 的查询通知系统,并使用它来启动我的服务 #2。大家觉得这个想法怎么样?
【问题讨论】:
-
不要认为其中任何一个对我有用,因为我不想将任何数据从一个服务传递到另一个服务。我基本上想要服务#1 的某种类型的信号发送到服务#2,告诉#2 开始。
标签: .net event-handling windows-services