diff --git a/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs b/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs index 44a5c5e53d..5eb945127b 100644 --- a/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs +++ b/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs @@ -14,20 +14,23 @@ namespace Umbraco.Cms.Core.Cache /// public sealed class DatabaseServerMessengerNotificationHandler : INotificationHandler, INotificationHandler { - private readonly IServerMessenger _messenger; - private readonly IRuntimeState _runtimeState; + private readonly IServerMessenger _messenger; + private readonly IUmbracoDatabaseFactory _databaseFactory; private readonly IDistributedCacheBinder _distributedCacheBinder; private readonly ILogger _logger; + private readonly IRuntimeState _runtimeState; /// /// Initializes a new instance of the class. /// public DatabaseServerMessengerNotificationHandler( - IServerMessenger serverMessenger, - IRuntimeState runtimeState, + IServerMessenger serverMessenger, + IUmbracoDatabaseFactory databaseFactory, IDistributedCacheBinder distributedCacheBinder, - ILogger logger) - { + ILogger logger, + IRuntimeState runtimeState) + { + _databaseFactory = databaseFactory; _distributedCacheBinder = distributedCacheBinder; _logger = logger; _messenger = serverMessenger; @@ -37,11 +40,15 @@ namespace Umbraco.Cms.Core.Cache /// public void Handle(UmbracoApplicationStarting notification) { - if (_runtimeState.Level == RuntimeLevel.Install) + if (_databaseFactory.CanConnect == false) + { + _logger.LogWarning("Cannot connect to the database, distributed calls will not be enabled for this server."); + } + else if (_runtimeState.Level != RuntimeLevel.Run) { - _logger.LogWarning("Disabling distributed calls during install"); + _logger.LogWarning("Distributed calls are not available outside the Run runtime level"); } - else + else { _distributedCacheBinder.BindEvents();