public ServiceStatusMessage ServiceStatus(string serviceFullPath, string serviceName) { var services = ServiceController.GetServices(); var service = services.FirstOrDefault(s => s.ServiceName == serviceName); var result = new ServiceStatusMessage { Exists = File.Exists(serviceFullPath), Installed = service != null }; if (result.Exists) { var serviceAssemblyFileVersioneInfo = FileVersionInfo.GetVersionInfo(serviceFullPath); // Versione del servizio result.Version = serviceAssemblyFileVersioneInfo.FileVersion; if (result.Installed) { // Status del servizio result.Status = new ServiceController(serviceName).Status; } else { result.Message = "Il servizio non è installato"; } } else { result.Message = "Il servizio non esiste"; } return(result); }
public MonitorActor(IActorRef consoleDashBoard) { var serviceActor = Context.ActorOf(Props.Create <CheckHealthActor>().WithRouter(new RoundRobinPool(10))); this.Receive <IEnumerable <string> >(list => { foreach (var serviceUrl in list) { serviceActor.Tell(serviceUrl); } }); this.Receive <Tuple <string, bool> >(t => { consoleDashBoard.Tell(t.Item2 ? ServiceStatusMessage.Ok(t.Item1) : ServiceStatusMessage.Fail(t.Item1)); }); }