From 3be00ceb4f0f0e8fd639cba631e7e06c035bc00f Mon Sep 17 00:00:00 2001 From: Benjamin Carleski Date: Wed, 17 Mar 2021 11:50:23 -0700 Subject: [PATCH 1/2] #9843 - Allow install with DB string pre-configured --- .../DatabaseServerMessengerNotificationHandler.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs b/src/Umbraco.Infrastructure/Cache/DatabaseServerMessengerNotificationHandler.cs index ac35f442c1..44a5c5e53d 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; @@ -14,7 +15,7 @@ namespace Umbraco.Cms.Core.Cache public sealed class DatabaseServerMessengerNotificationHandler : INotificationHandler, INotificationHandler { private readonly IServerMessenger _messenger; - private readonly IUmbracoDatabaseFactory _databaseFactory; + private readonly IRuntimeState _runtimeState; private readonly IDistributedCacheBinder _distributedCacheBinder; private readonly ILogger _logger; @@ -23,22 +24,22 @@ namespace Umbraco.Cms.Core.Cache /// public DatabaseServerMessengerNotificationHandler( IServerMessenger serverMessenger, - IUmbracoDatabaseFactory databaseFactory, + IRuntimeState runtimeState, IDistributedCacheBinder distributedCacheBinder, ILogger logger) { - _databaseFactory = databaseFactory; _distributedCacheBinder = distributedCacheBinder; _logger = logger; _messenger = serverMessenger; + _runtimeState = runtimeState; } /// public void Handle(UmbracoApplicationStarting notification) { - if (_databaseFactory.CanConnect == false) + if (_runtimeState.Level == RuntimeLevel.Install) { - _logger.LogWarning("Cannot connect to the database, distributed calls will not be enabled for this server."); + _logger.LogWarning("Disabling distributed calls during install"); } else { From fe803697be78649a858a2ab031e297f293893cdb Mon Sep 17 00:00:00 2001 From: Benjamin Carleski Date: Thu, 18 Mar 2021 08:34:24 -0700 Subject: [PATCH 2/2] Re-add runtime level check, only make calls in Run mode --- ...abaseServerMessengerNotificationHandler.cs | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) 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();