/// <summary> /// check services wether they should be started/stopped. /// </summary> /// <returns></returns> internal void CheckServices() { var services = _serviceLocator.GetServices(); foreach (var service in services) { var guarded = service as IGuardedService; if (guarded == null) { continue; } try { if (!IsEnabled(service.GetType())) { if (guarded.IsRunning) { Signals.Signal.Raise("ApplicationServices[" + service.GetType().FullName + "].Disabled", "Disabled during runtime."); _logger.Info("Stopping service that have been disabled '" + service.GetType().FullName + "'."); service.Stop(); } continue; } Signals.Signal.Reset("ApplicationServices[" + service.GetType().FullName + "].Disabled"); if (guarded.IsRunning) { continue; } _logger.Info("Starting service that should be running '" + service.GetType().FullName + "'."); service.Start(); Signals.Signal.Raise("ApplicationServices[" + service.GetType().FullName + "].Started", "Started during runtime."); } catch (Exception exception) { Signals.Signal.Raise("ApplicationServices[" + service.GetType().FullName + "].Faulted", exception.Message, exception); var args = new ApplicationServiceFailedEventArgs(service, exception); ServiceStartFailed(this, args); if (!args.CanContinue) { return; } } } }
/// <summary> /// check services whether they should be started/stopped. /// </summary> /// <returns></returns> internal void CheckServices() { var services = _serviceLocator.GetServices(); foreach (var service in services) { var guarded = service as IGuardedService; if (guarded == null) { continue; } try { if (!IsEnabled(service.GetType())) { if (guarded.IsRunning) { _logger.Info("Stopping service that have been disabled '" + service.GetType().FullName + "'."); service.Stop(); } continue; } if (guarded.IsRunning) { continue; } _logger.Info("Starting service that should be running '" + service.GetType().FullName + "'."); service.Start(); } catch (Exception exception) { var args = new ApplicationServiceFailedEventArgs(service, exception); ServiceStartFailed(this, args); if (!args.CanContinue) { return; } } } }
/// <summary> /// check services wether they should be started/stopped. /// </summary> /// <returns></returns> internal void CheckServices() { var services = _serviceLocator.GetServices(); foreach (var service in services) { var guarded = service as IGuardedService; if (guarded == null) continue; try { if (!IsEnabled(service.GetType())) { if (guarded.IsRunning) { _logger.Info("Stopping service that have been disabled '" + service.GetType().FullName + "'."); service.Stop(); } continue; } if (guarded.IsRunning) continue; _logger.Info("Starting service that should be running '" + service.GetType().FullName + "'."); service.Start(); } catch (Exception exception) { var args = new ApplicationServiceFailedEventArgs(service, exception); ServiceStartFailed(this, args); if (!args.CanContinue) return; } } }
private void OnServiceFailed(object sender, ApplicationServiceFailedEventArgs e) { ServiceFailed(this, e); }
private void OnApplicationFailure(object sender, ApplicationServiceFailedEventArgs e) { Console.WriteLine(e.ApplicationService + " failed: " + e.Exception); }