我正在尝试通过ServiceBase.Run(ServiceBase[] )
运行几个类似的服务,但它只运行第一个。 MSDN没有明确否认这一点;这段摘录是否意味着它们都必须是不同的类型? (粗体是我,而不是MSDN)
在服务可执行文件的main()函数中调用此重载以加载关联服务的数组。
答案 0 :(得分:7)
这就是意图。这里的想法是,您可以使用单个可执行文件创建“多个服务”,而不仅仅是单一类型的服务。
当向SCM注册服务时,预期每项服务都是唯一的。这表明(我相信情况就是如此)数组中的每个元素都必须是ServiceBase的唯一实现。
如果您真的想要拥有相同服务的多个副本,我会重新考虑您的设计。只需使用相同的方法启动多个线程的服务,它将为单个服务实例提供相同的效果。