public void StartWithWorkerId(string workerId) { var managerCoreServicesClient = new ManagerCoreServicesClient(); var managerCoreServicesProxy = managerCoreServicesClient.ManagerCoreServicesProxy; ManagerCoreServicesProxy = managerCoreServicesProxy; WorkAssignment = ManagerCoreServicesProxy.GetWorkAssignment(workerId); Init(); State = WorkerState.Starting; try { BeginWork(); } catch (Exception ex) { ProblemReport problemReport = new ProblemReport(WorkerId, WorkerStage.BeginWork, ex); problemReport.SendProblemReport(ReportPipe); ex.Trace().Swallow(); Tracer.Debug("WorkerBase: Worker {0} is cleaning and quitting now", WorkerId); CleanAndQuit(); return; } State = WorkerState.Started; RunWorker(); CleanAndQuit(); }