我写了两个单独的Windows服务都正常运行,现在我想把这两个服务合并成一个,即在MMC中只有一个服务名称,但其中包含了两个服务的功能代码。我按照vs.net中的示例写的,但主服务正常,第二个调用的服务就是不工作,请指教:
// 进程的主入口点
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
// 同一进程中可以运行多个用户服务。若要将
// 另一个服务添加到此进程,请更改下行
// 以创建另一个服务对象。例如,
// ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
//我的代码如下
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Publish_Index(),new Hmg.WinService.Send_Mail()};
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
// 进程的主入口点
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
// 同一进程中可以运行多个用户服务。若要将
// 另一个服务添加到此进程,请更改下行
// 以创建另一个服务对象。例如,
// ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
//我的代码如下
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Publish_Index(),new Hmg.WinService.Send_Mail()};
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
1.仍然保持两个service.
2.将第二个service改写为普通的class,在第一个service的OnStart中启动第二个service中你想执行的动作.