From 21bf708ea3c70dfbc9264e00a795a71a2c262a31 Mon Sep 17 00:00:00 2001 From: codegecko Date: Thu, 24 Jun 2010 11:01:57 +0000 Subject: [PATCH] Fixed GlobalSettings.SaveSetting handler for Medium Trust. [TFS Changeset #71100] --- umbraco/businesslogic/GlobalSettings.cs | 15 ++++++++++----- .../businesslogic/umbraco.businesslogic.csproj | 1 + 2 files changed, 11 insertions(+), 5 deletions(-) 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} +