diff --git a/src/Umbraco.Core/Configuration/Models/HostingSettings.cs b/src/Umbraco.Core/Configuration/Models/HostingSettings.cs
index b9e11e99ca..cbe1fa6965 100644
--- a/src/Umbraco.Core/Configuration/Models/HostingSettings.cs
+++ b/src/Umbraco.Core/Configuration/Models/HostingSettings.cs
@@ -22,7 +22,7 @@ namespace Umbraco.Cms.Core.Configuration.Models
///
/// Gets or sets a value for the location of temporary files.
///
- [DefaultValue(StaticLocalTempStorageLocation)]
+ [DefaultValue(StaticLocalTempStorageLocation)]
public LocalTempStorage LocalTempStorageLocation { get; set; } = Enum.Parse(StaticLocalTempStorageLocation);
///
@@ -31,5 +31,10 @@ namespace Umbraco.Cms.Core.Configuration.Models
/// true if [debug mode]; otherwise, false.
[DefaultValue(StaticDebug)]
public bool Debug { get; set; } = StaticDebug;
+
+ ///
+ /// Gets or sets a value specifying the name of the site.
+ ///
+ public string SiteName { get; set; }
}
}
diff --git a/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs b/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs
index 9e5919c1e2..13f73e1b41 100644
--- a/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs
+++ b/src/Umbraco.Web.Common/AspNetCore/AspNetCoreHostingEnvironment.cs
@@ -37,7 +37,16 @@ namespace Umbraco.Cms.Web.Common.AspNetCore
_webHostEnvironment = webHostEnvironment ?? throw new ArgumentNullException(nameof(webHostEnvironment));
_urlProviderMode = _webRoutingSettings.CurrentValue.UrlProviderMode;
- SiteName = webHostEnvironment.ApplicationName;
+ SetSiteName(hostingSettings.CurrentValue.SiteName);
+
+ // We have to ensure that the OptionsMonitor is an actual options monitor since we have a hack
+ // where we initially use an OptionsMonitorAdapter, which doesn't implement OnChange.
+ // See summery of OptionsMonitorAdapter for more information.
+ if (hostingSettings is OptionsMonitor)
+ {
+ hostingSettings.OnChange(settings => SetSiteName(settings.SiteName));
+ }
+
ApplicationPhysicalPath = webHostEnvironment.ContentRootPath;
if (_webRoutingSettings.CurrentValue.UmbracoApplicationUrl is not null)
@@ -53,7 +62,7 @@ namespace Umbraco.Cms.Web.Common.AspNetCore
public Uri ApplicationMainUrl { get; private set; }
///
- public string SiteName { get; }
+ public string SiteName { get; private set; }
///
public string ApplicationId
@@ -198,7 +207,10 @@ namespace Umbraco.Cms.Web.Common.AspNetCore
}
}
}
+
+ private void SetSiteName(string siteName) =>
+ SiteName = string.IsNullOrWhiteSpace(siteName)
+ ? _webHostEnvironment.ApplicationName
+ : siteName;
}
-
-
}