C# 两个服务的Windows服务启动问题
我在servicebase中有两个服务,它的onstart方法是infinate循环(使用AsyncReadContext方式完成),但当启动一个服务时,它会启动列表中的第一个服务,而不会启动第二个服务的onstart。 一些代码:C# 两个服务的Windows服务启动问题,c#,.net,service,windows-services,C#,.net,Service,Windows Services,我在servicebase中有两个服务,它的onstart方法是infinate循环(使用AsyncReadContext方式完成),但当启动一个服务时,它会启动列表中的第一个服务,而不会启动第二个服务的onstart。 一些代码: ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Service1(),
new Service 2(),
};
ServiceBase.Run(ServicesToRun);
启动:
protected override void OnStart(string[] args)
{
//read MsMQ async way
}
服务1正在读取队列,但服务2没有读取队列。当我将服务2更改为列表中的第一个,然后服务2读取队列时,代码是相同的。这两个服务的队列是不同的。您应该在OnStart方法中启动另一个线程,该方法执行实际工作 例如,使用匿名方法:
var t = new Thread(new ThreadStart(() => {
//Actual work here
}));
t.Start();
这会导致OnStart方法立即完成,并且还应该启动第二个服务。我的代码中存在问题。两个服务Service1和Service2,未由serviceinstaller安装。当我改为ServiceInstaller,ServiceInstaller改为ProjectInstaller时。我是1093错误,服务无法启动,这是因为一旦我更改为服务的类名,服务的服务名称就相同。问题得到解决