【发布时间】:2009-11-06 00:10:17
【问题描述】:
我们正在尝试实现在同一进程下启动多个服务的单个 Windows 服务。根据代码,我看到您执行以下操作:
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1(),
new Service2()
};
ServiceBase.Run(ServicesToRun);
}
但是,此代码只执行 Service1 而不是 Service2。 Service1 和 Service2 都是自己执行的。有什么想法吗?
【问题讨论】:
-
您是在寻找两个独立的物理 Windows 服务还是一个执行两个功能的 Windows 服务?
-
您的 Service1/Service2 看起来如何?他们同时拥有 OnStart 方法和不同的 ServiceName?
-
@Anders 是的。事实上,两者都可以单独启动和运行。
-
我在这个问题上找到了一个类似的线程。 stackoverflow.com/questions/816437/…
-
所以我们最终解决了我们的问题,而是使用一个托管多个服务的项目,这些服务安装程序又创建了三个不同的 Windows 服务。无论如何,这是一个更好的解决方案,因为我们可以在发生某种故障时独立启动和停止各个服务。
标签: c# .net windows-services