応用編 1:ライフタイム イベント セッション情報消失!? ASP

応用編 1:ライフタイム イベント
セッション情報消失!?
Button1.Text = Session["Date"].ToString();
NullReferenceException
ASP.NET の既定の設定ではセッション情報はプロセスや
アプリケーションドメインが再起動されると失われます。
再起動を確認するためにライフタイム イベントを記録し
てみましょう
<healthMonitoring>
<rules>
<add name="myLifeTimeLogs"
eventName="Application Lifetime Events"
provider="EventLogProvider" />
</rules>
</healthMonitoring>
現象のシナリオ
w3wp.exe
w3wp.exe
AppDomain
AppDomain
Session
web.config
web.config
…
…
更新
Session["Date"].ToString();NullReferenceException
応用編 2:ハートビート
ASP.NET の鼓動を感じてみよう!
パフォーマンスモニタ以外でも、ASP.NET の情
報を定期的に収集する事ができます
ハートビートを記録し、アプリケーションの動
作を監視してみましょう
<healthMonitoring heartbeatInterval="10">
<rules>
<add name="myHeartbeatLogs"
eventName=“Heartbeats"
provider="EventLogProvider" />
</rules>
</healthMonitoring>
まとめ
まとめ
ASP.NET アプリケーションでの障害発生時には
まずイベントログを確認しましょう
healthMonitoring 機能を応用するとさらに
様々な情報も収集できます
ライフタイムイベントやハートビートなど
既定では記録されない内容が他にもあります
Success Audits
Request Processing Events など
他の方法で記録する事もできます
メール送信
データベースへの記録 など
参考資料
ASP.NET 2.0 でヘルス モニタリング機能を使用する方法
http://msdn.microsoft.com/ja-jp/library/ms998306.aspx
ASP.NET Health Monitoring の概要
http://msdn.microsoft.com/ja-jp/library/bb398933.aspx
healthMonitoring 要素 (ASP.NET 設定スキーマ)
http://msdn.microsoft.com/ja-jp/library/2fwh2ss9(VS.80).aspx