private void ExecuteError(Int32?httpCode, String message) { var routeData = new RouteData(); routeData.Values.Add("controller", ErrorController.Name); routeData.Values.Add("action", ErrorController.ActionName_Custom); if (httpCode.HasValue) { routeData.Values.Add("httpCode", httpCode.Value); } try { Response.Clear(); Server.ClearError(); Response.ContentType = "text/html; charset=utf-8"; Response.TrySkipIisCustomErrors = true; IController errorController = new ErrorController(); errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData)); } catch (Exception exception) { //SiteLogger.Fatal("Global.ExecuteError", exception, Context.Request.RequestContext.HttpContext); AppLogger.Fatal("Не предвиденная ошибка", exception); } }
private void App_DispatcherUnhandledException( object sender, DispatcherUnhandledExceptionEventArgs e) { try { // グローバルキーフックを解除する SharlayanController.UnsubscribeKeyHook(); Config.Instance.Save(); if (this.MainWindow != null) { MessageBoxHelper.ShowDialogMessageWindow( "RINGS - Fatal", "予期しない例外を検知しました。アプリケーションを終了します。", e.Exception); } else { MessageBox.Show( "予期しない例外を検知しました。アプリケーションを終了します。\n\n" + e.Exception, "RINGS - Fatal", MessageBoxButton.OK, MessageBoxImage.Error); } } finally { this.UnlockDuplicateStart(); AppLogger.Fatal( "Unhandled Exception. 予期しない例外を検知しました。", e.Exception); AppLogger.Write("RINGS Abort."); AppLogger.Flush(); } }
private void App_DispatcherUnhandledException( object sender, DispatcherUnhandledExceptionEventArgs e) { try { Config.Instance.Save(); Thread.Sleep(50); if (this.MainWindow != null) { MessageBoxHelper.ShowDialogMessageWindow( "madoka - Fatal", "予期しない例外を検知しました。アプリケーションを終了します。", e.Exception); } else { MessageBox.Show( "予期しない例外を検知しました。アプリケーションを終了します。\n\n" + e.Exception, "madoka - Fatal", MessageBoxButton.OK, MessageBoxImage.Error); } } finally { AppLogger.Fatal( "Unhandled Exception. 予期しない例外が発生しました。", e.Exception); AppLogger.Write("madoka Abort."); AppLogger.Flush(); } }
public static async Task <bool> IsUpdateAsync( ReleaseChannels updateChannel) { SetupSSL(); // アップデートChannelを保存する LastCheckedUpdateChannel = updateChannel; if (string.IsNullOrEmpty(UpdateSourceUri)) { return(false); } var now = DateTimeOffset.Now; var targetAssembly = Assembly.GetEntryAssembly(); try { // リリースノートを取得する var notes = await ReleaseNotes.DeserializeAsync(new Uri(UpdateSourceUri)); if (notes == null) { AppLogger.Error($"Update checker error. RELEASE_NOTES.xml not found. uri={UpdateSourceUri}"); return(false); } // より新しいバージョンがあるか? var newer = notes.GetNewerVersion( targetAssembly, updateChannel); if (newer == null) { AppLogger.Write("Update checker. this version is up-to-date."); return(false); } AppLogger.Write($"Update checker found newer version. v{newer.Version}-{newer.ReleaseChannel}"); // アップデートWindowを表示する await Application.Current.Dispatcher.InvokeAsync(() => { UpdateCheckerView.Show( notes.Name, targetAssembly, newer); }); } catch (Exception ex) { AppLogger.Fatal("Update checker fatal error.", ex); throw; } finally { LastUpdateCheckCallback?.Invoke(now); AppLogger.Flush(); } return(true); }