我在一个C#项目中有三个Windows服务。使用安装程序类(它包含三个服务安装程序和一个进程安装程序),我能够安装所有服务并以三种不同的Windows服务启动它们。
现在我正在尝试在一个服务名称下运行这些服务(我希望在服务控制管理器中看到一个服务名称,而不是三个)。这样做的最佳方法是什么?
提前致谢!
答案 0 :(得分:4)
你可能只有一个主要服务产生其他可执行文件作为常规进程(请参阅Process.Start(..)
),这些进程不会显示为Windows服务。该服务必须控制从属进程的生命周期(在服务启动后启动它们/在关闭之前停止它们)。
答案 1 :(得分:1)
创建一个新的Windows服务并启动3个线程。
答案 2 :(得分:0)
您所要做的就是实现代码重用的一些原则。
将每个相应的工作单元移动到类/库而不是服务中。创建引用最终结果库的单个服务。您的服务意图可能是某种类型的计时器,并可能暴露API端点。创建单个服务并从3个独特的计时器激活必要的类(如果需要 - 您可以使用单个计时器激活3个不同的类方法)。以类似的方式包装事件或API端点。服务应该包含很少或没有“业务”逻辑,它应该从引用的业务库中获得该工作。遵循这种做法,你的问题将主要回答它自己。