diff --git a/src/Umbraco.Web/PublishedCache/DefaultCultureAccessor.cs b/src/Umbraco.Web/PublishedCache/DefaultCultureAccessor.cs
index 80d2d9f3a5..ef6a6dd8da 100644
--- a/src/Umbraco.Web/PublishedCache/DefaultCultureAccessor.cs
+++ b/src/Umbraco.Web/PublishedCache/DefaultCultureAccessor.cs
@@ -1,4 +1,5 @@
-using Umbraco.Core.Services;
+using Umbraco.Core;
+using Umbraco.Core.Services;
namespace Umbraco.Web.PublishedCache
{
@@ -8,17 +9,20 @@ namespace Umbraco.Web.PublishedCache
public class DefaultCultureAccessor : IDefaultCultureAccessor
{
private readonly ILocalizationService _localizationService;
+ private readonly RuntimeLevel _runtimeLevel;
///
/// Initializes a new instance of the class.
///
- ///
- public DefaultCultureAccessor(ILocalizationService localizationService)
+ public DefaultCultureAccessor(ILocalizationService localizationService, IRuntimeState runtimeState)
{
_localizationService = localizationService;
+ _runtimeLevel = runtimeState.Level;
}
///
- public string DefaultCulture => _localizationService.GetDefaultLanguageIsoCode() ?? ""; // fast
+ public string DefaultCulture => _runtimeLevel == RuntimeLevel.Run
+ ? _localizationService.GetDefaultLanguageIsoCode() ?? "" // fast
+ : "en-US"; // default for install and upgrade, when the service is n/a
}
}
diff --git a/src/Umbraco.Web/UmbracoInjectedModule.cs b/src/Umbraco.Web/UmbracoInjectedModule.cs
index 14ae45fe40..6a786ed6bf 100644
--- a/src/Umbraco.Web/UmbracoInjectedModule.cs
+++ b/src/Umbraco.Web/UmbracoInjectedModule.cs
@@ -95,6 +95,7 @@ namespace Umbraco.Web
// ok, process
+ // TODO: should we move this to after we've ensured we are processing a routable page?
// ensure there's an UmbracoContext registered for the current request
// registers the context reference so its disposed at end of request
var umbracoContextReference = _umbracoContextFactory.EnsureUmbracoContext(httpContext);