Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 两个服务的Windows服务启动问题_C#_.net_Service_Windows Services - Fatal编程技术网

C# 两个服务的Windows服务启动问题

C# 两个服务的Windows服务启动问题,c#,.net,service,windows-services,C#,.net,Service,Windows Services,我在servicebase中有两个服务,它的onstart方法是infinate循环(使用AsyncReadContext方式完成),但当启动一个服务时,它会启动列表中的第一个服务,而不会启动第二个服务的onstart。 一些代码: ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new

我在servicebase中有两个服务,它的onstart方法是infinate循环(使用AsyncReadContext方式完成),但当启动一个服务时,它会启动列表中的第一个服务,而不会启动第二个服务的onstart。 一些代码:

           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错误,服务无法启动,这是因为一旦我更改为服务的类名,服务的服务名称就相同。问题得到解决