C#写一个Windows服务程序,启动多个service的问题
代码打字员 2011-12-17 01:20:36 需求如下:我希望用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()。