C#写一个Windows服务程序,启动多个service的问题
需求如下:我希望用C#写一个WINDOWS SERVICE程序,这个SERVICE程序里需要处理几种不同请求。
我的实现:添加一个Windows Service类型的类MainController,修改代码如下
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
// Run all user Service in this process.
ServicesToRun = new System.ServiceProcess.ServiceBase[] {
new MainController(), // main service
new Service1 (),
new Service2 (),
new Service3 (),
};
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
再向项目中添加Windows Service类型的类Service1, Service2, Service3。查看代码可以发现Service1,Service2,Service3大部分和MainController相同,但少了Main()方法。添加相应代码到Service1的OnStart()、OnStop()方法中,编译成功,然后安装运行该服务。但在查看服务输出时,发现MainController运行正常,但Service1,Service2,Service3都没有被自动启动,除非在他们的构造函数里,主动调用OnStart()。
请问,是不是我的用法有问题?请教如何实现我的需求?