c#:如何将多个Windows服务作为一项服务运行?

问题描述

| 我在一个C#项目中拥有三个Windows服务。使用安装程序类(它包含三个服务安装程序和一个进程安装程序),我能够安装所有服务并将其作为三个不同的Windows服务启动。 现在,我试图以一个服务名称运行这些服务(我希望在服务控制管理器中看到一个服务名称,而不是三个)。这样做的最佳方法是什么? 提前致谢!     

解决方法

        您可能只有一个主要服务,它将其他可执行文件作为常规进程生成(请参见
Process.Start(..)
),这些服务不会显示为Windows服务。该服务将必须控制相关进程的生命周期(在服务启动后启动它们/在关闭之前停止它们)。     ,        创建一个新的Windows服务并启动3个线程。     ,        您要做的就是实现一些代码重用原则。 将每个各自的工作单元移到班级/图书馆而不是服务中。创建一个引用最终结果库的单一服务。您的服务意图可能是某种计时器,并且可能会暴露API端点。创建单个服务并从3个唯一的计时器激活必要的类(如果需要-您可以通过激活3个不同类方法的单个计时器来摆脱困境)。以类似方式包装事件或API端点。服务应包含很少或没有“业务”逻辑,它应从引用的业务库中派生该工作。遵循该做法,您的问题将主要回答它的自我。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...