diff --git a/src/Umbraco.Web.UI/install/InstallerRestService.aspx.cs b/src/Umbraco.Web.UI/install/InstallerRestService.aspx.cs index 248e6c17d2..8b197d75f0 100644 --- a/src/Umbraco.Web.UI/install/InstallerRestService.aspx.cs +++ b/src/Umbraco.Web.UI/install/InstallerRestService.aspx.cs @@ -1,6 +1,7 @@ using System; using System.Configuration; using System.Security.Authentication; +using System.Web; using System.Web.Script.Serialization; using System.Web.Script.Services; using System.Web.Services; @@ -97,6 +98,11 @@ namespace Umbraco.Web.UI.Install HandleConnectionStrings(); + //After upgrading we must restart the app pool - the reason is because PetaPoco caches a lot of the mapping logic + // and after we upgrade a db, some of the mapping needs to be updated so we restart the app pool to clear it's cache or + // else we can end up with YSODs + ApplicationContext.Current.RestartApplicationPool(new HttpContextWrapper(HttpContext.Current)); + var js = new JavaScriptSerializer(); var jsonResult = js.Serialize(result); return jsonResult; diff --git a/src/Umbraco.Web.UI/install/steps/Database.ascx.cs b/src/Umbraco.Web.UI/install/steps/Database.ascx.cs index ede7132da0..45eab19d45 100644 --- a/src/Umbraco.Web.UI/install/steps/Database.ascx.cs +++ b/src/Umbraco.Web.UI/install/steps/Database.ascx.cs @@ -161,10 +161,10 @@ namespace Umbraco.Web.UI.Install.Steps DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "password"); if (string.IsNullOrEmpty(DatabasePassword.Text)) DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "pwd"); - toggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase); if (IsNewInstall || IsEmbeddedDatabase) dbinit.Text = "$('#databaseOptionEmbedded').click();$('#databaseOptionEmbedded').change();"; @@ -243,15 +243,15 @@ namespace Umbraco.Web.UI.Install.Steps /// The event arguments. protected void DatabaseType_SelectedIndexChanged(object sender, EventArgs e) { - toggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase); + ToggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase); //toggleVisible(DatabaseConnectionString, ManualConnectionString); } - private static void toggleVisible(HtmlGenericControl div, bool visible) + private static void ToggleVisible(HtmlGenericControl div, bool visible) { if (!visible) div.Attributes["style"] = "display: none;";