Ensures app domain restarted after db upgrade to clear PetaPoco's mapping cache.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
/// <param name="e">The event arguments.</param>
|
||||
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;";
|
||||
|
||||
Reference in New Issue
Block a user