diff --git a/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs b/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs index ac35f442c1..5eb945127b 100644 --- a/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs +++ b/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs @@ -3,6 +3,7 @@ using Microsoft.Extensions.Logging; using Umbraco.Cms.Core.Events; +using Umbraco.Cms.Core.Services; using Umbraco.Cms.Core.Sync; using Umbraco.Cms.Infrastructure.Persistence; @@ -13,34 +14,41 @@ namespace Umbraco.Cms.Core.Cache /// public sealed class DatabaseServerMessengerNotificationHandler : INotificationHandler, INotificationHandler { - private readonly IServerMessenger _messenger; + 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, + IServerMessenger serverMessenger, IUmbracoDatabaseFactory databaseFactory, IDistributedCacheBinder distributedCacheBinder, - ILogger logger) - { + ILogger logger, + IRuntimeState runtimeState) + { _databaseFactory = databaseFactory; _distributedCacheBinder = distributedCacheBinder; _logger = logger; _messenger = serverMessenger; + _runtimeState = runtimeState; } /// public void Handle(UmbracoApplicationStarting notification) { 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("Cannot connect to the database, distributed calls will not be enabled for this server."); + _logger.LogWarning("Distributed calls are not available outside the Run runtime level"); } - else + else { _distributedCacheBinder.BindEvents();