From df2d1fb4da603a45cb09b4be57b0014dfca51e65 Mon Sep 17 00:00:00 2001 From: Mikulas Tomanka Date: Tue, 19 May 2020 09:45:31 +0200 Subject: [PATCH] use sql main dom lock when linux and ignore config setting --- .../Extensions/UmbracoCoreServiceCollectionExtensions.cs | 4 +++- src/Umbraco.Web/UmbracoApplication.cs | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs index 0fe784f421..b0466b4e49 100644 --- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs +++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Data.Common; using System.IO; using System.Reflection; +using System.Runtime.InteropServices; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; @@ -175,7 +176,8 @@ namespace Umbraco.Web.Common.Extensions var globalSettings = configs.Global(); var connStrings = configs.ConnectionStrings(); var appSettingMainDomLock = globalSettings.MainDomLock; - var mainDomLock = appSettingMainDomLock == "SqlMainDomLock" + var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux); + var mainDomLock = appSettingMainDomLock == "SqlMainDomLock" || isLinux == true ? (IMainDomLock)new SqlMainDomLock(logger, globalSettings, connStrings, dbProviderFactoryCreator) : new MainDomSemaphoreLock(logger, hostingEnvironment); diff --git a/src/Umbraco.Web/UmbracoApplication.cs b/src/Umbraco.Web/UmbracoApplication.cs index 7679da2e2e..d95eb2c6e8 100644 --- a/src/Umbraco.Web/UmbracoApplication.cs +++ b/src/Umbraco.Web/UmbracoApplication.cs @@ -1,6 +1,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; using System.Threading; using System.Web; using Umbraco.Core; @@ -31,7 +32,8 @@ namespace Umbraco.Web // Determine if we should use the sql main dom or the default var appSettingMainDomLock = globalSettings.MainDomLock; - var mainDomLock = appSettingMainDomLock == "SqlMainDomLock" + var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux); + var mainDomLock = appSettingMainDomLock == "SqlMainDomLock" || isLinux == true ? (IMainDomLock)new SqlMainDomLock(logger, globalSettings, connectionStrings, dbProviderFactoryCreator) : new MainDomSemaphoreLock(logger, hostingEnvironment);