Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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# 运行(数组)只启动数组上的第一个条目_C#_.net_Windows_Service - Fatal编程技术网

C# 运行(数组)只启动数组上的第一个条目

C# 运行(数组)只启动数组上的第一个条目,c#,.net,windows,service,C#,.net,Windows,Service,为什么下面的代码windows服务只启动第一个实例 List<MyserviceBaseInheritedClass> ServicesToRun = new List<MyserviceBaseInheritedClass>(); foreach (MyBusObj.Client client in _Clients) { MyserviceBaseInherited

为什么下面的代码windows服务只启动第一个实例

            List<MyserviceBaseInheritedClass> ServicesToRun = new List<MyserviceBaseInheritedClass>();
            foreach (MyBusObj.Client client in _Clients)
            {
                MyserviceBaseInheritedClass srvBase = new MyserviceBaseInheritedClass();
                srvBase.ServiceName = "PREFIX" + client.ClientName.Trim();
                ServicesToRun.Add(srvBase);
            }

            if (ServicesToRun.Count > 0)
            {                    
                //// create all the services 
                //// one per client
                /////////////////////////// SERVICE ENTRY POINT
                ServiceBase.Run(ServicesToRun.ToArray());
                ////////////////////////////////////////////
            }
List ServicesToRun=new List();
foreach(MyBusObj.Client in_Clients)
{
MyserviceBaseInheritedClass srvBase=新的MyserviceBaseInheritedClass();
srvBase.ServiceName=“PREFIX”+client.ClientName.Trim();
ServicesToRun.Add(srvBase);
}
如果(ServicesToRun.Count>0)
{                    
////创建所有服务
////每个客户一个
///////////////////////////服务入口点
Run(ServicesToRun.ToArray());
////////////////////////////////////////////
}

是的,服务库实际上是同一个服务,但它的读取和操作完全不同,这取决于来自DB的配置

您是否有机会在MyserviceBaseInheritedClass的Start方法中做了大量工作?ServiceBase.Run基本上会调用每个服务的Start方法,并等待它们完成后再传递到下一个服务。目前只有://当服务启动时,保护覆盖void OnStart(字符串[]args){LogInfo(“为客户端启动的进程[“+theClient.ClientName+”]”;//this.Initialize();LogInfo(“客户端[“+theClient.ClientName+”]…);}尝试将AutoLog设置为true以查看发生了哪些错误。另外,这不是处理服务的常用方法,您应该只有一个服务和多个工人类实例。。。还要注意,服务必须注册…我正在更改架构,这种方法根本不起作用,我在这方面浪费了太长时间。我按照您的建议,设置Autolog=true,并且导致事件查看器上的日志的对象的名称是第一个serviceBase类的名称,而第二个serviceBase类什么也不做。ServiceBase类的文档不是很好,老实说,并没有以任何方式或形式禁止这样做。它只说:如果serviceName不同,那么它将启动。我必须诚实(谢谢你的帮助@Bodgan