.NET TIPS [ASP.NET AJAX]非同期通信時に発生した例外情報をロギングするには?[2.0、3.0、3.5、C#、VB]山田 祥寛2008/06/05 |
![]() |
「TIPS:[ASP.NET]アプリケーション内で発生したエラー情報をロギングするには?」で紹介したように、Global.asaxを利用することでアプリケーションで発生した例外情報をロギング(=ログ出力)することができる。
ただし、非同期ポストバックで発生した例外情報をロギングしようとした場合には注意が必要だ。というのも、「TIPS:[ASP.NET AJAX]非同期通信で発生した例外の処理方法を変更するには?」で紹介したように、ASP.NET AJAXでは非同期ポストバックで例外が発生した場合にも、AllowCustomErrorRedirectプロパティをFalseに設定することでカスタム・エラー・ページへのリダイレクトを抑制できるからだ。そして、この場合にはGlobal.asaxのApplication_Errorイベント・ハンドラは実行されないのである(そもそもカスタム・エラー・ページが設定されていない場合も同様)。非同期ポストバックで発生した例外情報を確実にロギングするには、ScriptManager.AsyncPostBackErrorイベントを利用する必要がある。
以下に、その具体的な例を示してみよう。以下は、「TIPS:[ASP.NET AJAX]非同期通信で発生した例外の処理方法を変更するには?」で紹介したCustomError.aspxに対して、AsyncPostBackErrorイベント・ハンドラを追加した例である。
|
||
| 非同期ポストバックで発生した例外情報をロギングするコード(上:CustomError.aspx.cs、下:CustomError.aspx.vb) |
非同期ポストバックで発生した例外情報は、AsyncPostBackErrorイベント・ハンドラの第2パラメータに渡されたAsyncPostBackErrorEventArgsオブジェクト(System.Web.UI名前空間)のExceptionプロパティを介して取得することが可能だ。
ここでは、取得したExceptionオブジェクトからエラーの発生元や例外メッセージ、エラー原因となったメソッドなどの情報を取り出し、これをログ・ファイルerror.logに記録しているというわけだ。
以上を理解したら、CustomError.aspxを実行し、[更新]ボタンをクリックしてみよう。アプリケーション・ルートの直下にerror.logファイルが作成され、以下のようなログ情報が記録されていれば成功である。
![]() |
| AsyncPostBackErrorイベント・ハンドラによって記録されたログ |
ちなみに、Global.asaxのApplication_Errorイベント・ハンドラでもロギング処理を行っており、かつ、ページのAllowCustomErrorRedirectプロパティをTrueに設定している場合には、AsyncPostBackErrorイベント・ハンドラとApplication_Errorイベント・ハンドラの双方でロギングが行われてしまうので、要注意だ。AsyncPostBackErrorイベント・ハンドラで例外を処理している場合は、重ねて例外処理が行われないよう、AllowCustomErrorRedirectプロパティはFalseに設定するのが好ましい。![]()
| 利用可能バージョン:.NET Framework 2.0 利用可能バージョン:.NET Framework 3.0 利用可能バージョン:.NET Framework 3.5 カテゴリ:Webフォーム 処理対象:ASP.NET AJAX 関連TIPS:[ASP.NET]アプリケーション内で発生したエラー情報をロギングするには? 関連TIPS:[ASP.NET AJAX]非同期通信で発生した例外の処理方法を変更するには? |
| 「.NET TIPS」 |
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



