コード例 #1
0
        /// <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;
                    }
                }
            }
        }
コード例 #2
0
        /// <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;
                    }
                }
            }
        }
コード例 #3
0
        /// <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;
                }
            }
        }
コード例 #4
0
 private void OnServiceFailed(object sender, ApplicationServiceFailedEventArgs e)
 {
     ServiceFailed(this, e);
 }
コード例 #5
0
 private void OnApplicationFailure(object sender, ApplicationServiceFailedEventArgs e)
 {
     Console.WriteLine(e.ApplicationService + " failed: " + e.Exception);
 }
コード例 #6
0
 private void OnServiceFailed(object sender, ApplicationServiceFailedEventArgs e)
 {
     ServiceFailed(this, e);
 }