diff --git a/MediaBrowser.ServerApplication/App.xaml.cs b/MediaBrowser.ServerApplication/App.xaml.cs index 0155d0c90e..35f203a629 100644 --- a/MediaBrowser.ServerApplication/App.xaml.cs +++ b/MediaBrowser.ServerApplication/App.xaml.cs @@ -134,6 +134,11 @@ namespace MediaBrowser.ServerApplication Logger.ErrorException("UnhandledException", exception); MessageBox.Show("Unhandled exception: " + exception.Message); + + if (!Debugger.IsAttached) + { + Environment.Exit(System.Runtime.InteropServices.Marshal.GetHRForException(exception)); + } } /// diff --git a/MediaBrowser.WebDashboard/Html/scripts/site.js b/MediaBrowser.WebDashboard/Html/scripts/site.js index 7ecaff85bf..cb4ba3bdd5 100644 --- a/MediaBrowser.WebDashboard/Html/scripts/site.js +++ b/MediaBrowser.WebDashboard/Html/scripts/site.js @@ -382,7 +382,7 @@ var Dashboard = { setTimeout(function () { Dashboard.reloadPageWhenServerAvailable(); - }, 500); + }, 250); }).fail(function () { Dashboard.suppressAjaxErrors = false; @@ -391,10 +391,17 @@ var Dashboard = { reloadPageWhenServerAvailable: function (retryCount) { - ApiClient.getSystemInfo().done(function () { - Dashboard.reloadPage(); + ApiClient.getSystemInfo().done(function (info) { + + // If this is back to false, the restart completed + if (!info.HasPendingRestart) { + Dashboard.reloadPage(); + } else { + Dashboard.reloadPageWhenServerAvailable(retryCount); + } }).fail(function () { + setTimeout(function () { retryCount = retryCount || 0;