diff --git a/umbraco/businesslogic/GlobalSettings.cs b/umbraco/businesslogic/GlobalSettings.cs index c7f5e55daf..cfbfd2739a 100644 --- a/umbraco/businesslogic/GlobalSettings.cs +++ b/umbraco/businesslogic/GlobalSettings.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Configuration; using System.Web; +using System.Web.Hosting; using System.Web.Configuration; using System.Xml; @@ -248,17 +249,21 @@ namespace umbraco { WebConfigurationFileMap webConfig = new WebConfigurationFileMap(); var vDirs = webConfig.VirtualDirectories; - var vDir = "~"; + var vDir = FullpathToRoot; foreach (VirtualDirectoryMapping v in webConfig.VirtualDirectories) { if (v.IsAppRoot) { - vDir = v.VirtualDirectory; + vDir = v.PhysicalDirectory; } } - Configuration config = WebConfigurationManager.OpenWebConfiguration(vDir); - config.AppSettings.Settings[key].Value = value; - config.Save(); + + XmlDocument doc = new XmlDocument(); + doc.Load(String.Concat(vDir, "web.config")); + XmlNode root = doc.DocumentElement; + XmlNode setting = doc.SelectSingleNode(String.Concat("//appSettings/add[@key='", key, "']")); + setting.Attributes["value"].InnerText = value; + doc.Save(String.Concat(vDir, "web.config")); ConfigurationManager.RefreshSection("appSettings"); } diff --git a/umbraco/businesslogic/umbraco.businesslogic.csproj b/umbraco/businesslogic/umbraco.businesslogic.csproj index f74db9c68c..b038dd5ef5 100644 --- a/umbraco/businesslogic/umbraco.businesslogic.csproj +++ b/umbraco/businesslogic/umbraco.businesslogic.csproj @@ -125,6 +125,7 @@ {511F6D8D-7717-440A-9A57-A507E9A8B27F} {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} +