diff --git a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs index eb14267ecd..358378ca35 100644 --- a/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs +++ b/src/Umbraco.Web.Common/Extensions/UmbracoCoreServiceCollectionExtensions.cs @@ -4,6 +4,7 @@ using System.Data.Common; using System.Data.SqlClient; using System.IO; using System.Reflection; +using System.Runtime.InteropServices; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; @@ -247,7 +248,9 @@ namespace Umbraco.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, hostingEnvironment) : new MainDomSemaphoreLock(logger, hostingEnvironment); diff --git a/src/Umbraco.Web/UmbracoApplication.cs b/src/Umbraco.Web/UmbracoApplication.cs index cf2a28f98f..41a4833ff4 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; @@ -33,7 +34,9 @@ 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, hostingEnvironment) : new MainDomSemaphoreLock(logger, hostingEnvironment);