protected override async Task ExecuteAsync(CancellationToken stoppingToken) { Logger.Debug("Health check background service is starting"); stoppingToken.Register(() => Logger.Debug("Health check background service is stopping.")); while (!stoppingToken.IsCancellationRequested) { try { using var scope = _serviceProvider.CreateScope(); var serverDal = scope.ServiceProvider.GetService <IServerDal>(); var cloudProviderDal = scope.ServiceProvider.GetService <ICloudProviderDal>(); var healthCheckDal = scope.ServiceProvider.GetService <IHealthCheckDal>(); var healthCheckManager = new HealthCheckManager(healthCheckDal, serverDal, cloudProviderDal); var result = healthCheckManager.RunHealthChecks(); Logger.Info( result ? "Health checks ran successfully" : "Health checks did not run successfully"); } catch (Exception e) { Logger.Error(e); } await Task.Delay(TimeSpan.FromMinutes(BackgroundServiceHelper.HealthCheckDelay), stoppingToken); } Logger.Debug("Health check background service is stopping."); }