diff --git a/src/Umbraco.Web/ApplicationContextExtensions.cs b/src/Umbraco.Web/ApplicationContextExtensions.cs index fcbcab1628..1756da5f3c 100644 --- a/src/Umbraco.Web/ApplicationContextExtensions.cs +++ b/src/Umbraco.Web/ApplicationContextExtensions.cs @@ -1,30 +1,24 @@ -using System; -using System.IO; -using System.Web; +using System.Web; using Umbraco.Core; namespace Umbraco.Web { public static class ApplicationContextExtensions { - /// - /// This will restart the application pool - /// - /// - /// - public static void RestartApplicationPool(this ApplicationContext appContext, HttpContextBase http) - { + /// + /// Restarts the application pool by unloading the application domain. + /// + /// + /// + public static void RestartApplicationPool(this ApplicationContext appContext, HttpContextBase http) + { + // we're going to put an application wide flag to show that the application is about to restart. + // we're doing this because if there is a script checking if the app pool is fully restarted, then + // it can check if this flag exists... if it does it means the app pool isn't restarted yet. + http.Application.Add("AppPoolRestarting", true); - //we're going to put an application wide flag to show that the application is about to restart. - //we're doing this because if there is a script checking if the app pool is fully restarted, then - //it can check if this flag exists... if it does it means the app pool isn't restarted yet. - http.Application.Add("AppPoolRestarting", true); - - //NOTE: this real way only works in full trust :( - //HttpRuntime.UnloadAppDomain(); - //so we'll do the dodgy hack instead - var configPath = http.Request.PhysicalApplicationPath + "\\web.config"; - File.SetLastWriteTimeUtc(configPath, DateTime.UtcNow); + // unload app domain + HttpRuntime.UnloadAppDomain(); } } }