2016-12-01 8 views
0

私は最近、いくつかのクライアントマシンで動作するアプリケーションをビルドしました。アプリケーションはウィンドウの起動時に実行されます。このアプリケーションでは、以下のメソッドを使用してアクセスすることによって、アプリケーション実行時間の一部のパラメータを変更しています。 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)アプリケーションのexe設定ファイルのエラーをキャッチ

時折(??なぜ分からないのです)、設定ファイルが破損し、アプリケーションがクラッシュし、私はこの例外をキャッチしたいメッセージ、次の

application failed to start because its side-by-side configuration is incorrect

と、システムの再起動時に取得します。私はtry-catchブロックをアプリケーションのmain()メソッドに入れてみましたが、まだ処理されていない例外とそれらの奇妙なメッセージボックスが来ています。

corrupted config fileをどうすれば処理できますか?

+0

Windowsサービスの場合は、OnStart()メソッドが必要です。 – MikkaRin

+0

破損した設定ファイルはどのように見えますか? – rene

+0

実際にはウィンドウサービスではありませんが、ウィンドウの起動時に開始します。 –

答えて

0

プログラムの起動時にappDomainにグローバル例外ハンドラを登録しようとします。あなたのapp.xamlに:

var currentDomain = AppDomain.CurrentDomain; 
currentDomain.UnhandledException += GlobalUnhandledExceptionHandler; 

GlobalUnhandledExceptionHandlerイベントハンドラでは、エラーをログに記録したり、設定ファイルが破損しているユーザーにメッセージを表示することができます。

これはアプリケーションのシャットダウンを防ぎませんが、少なくとも「サイドバイサイド設定が壊れている」以上のことを知っています。

関連する問題