ELMAH SQLエラーハンドラデータベースには、ログに何が起こるかavailable-ありませんか?
質問
私はELMAHのテストだし、意図的にDBが使用できない場合は、生産に何が起こるかを見るために自分のアプリケーションでELMAHログのデータベース接続をオフにしている。
これは思わELMAHできないトラップそのSQLのdatabseログが失敗したときにAXDファイルが利用できないエラー - 自分ます。
ELMAHの意図した動作は、データベースが利用できない場合は何ですか?
この問題が発生した場合にどのように私は私のエラーを診断することができますか?
解決
本当にわからないが、このようなログフレームワークの予想される動作は、何かが彼らとうまくいかない場合は、例外をスローすることはありません。即ちELMAHのデータベースがダウンしている場合、私はそれだけでデータベースにエラーを記録しませんと仮定と思います。
の上で示唆したようにすることができます/シンクの代替使用する必要があります - 。電子メールまたはフラットファイルを
他のヒント
これは、そのELMAHできないトラップ自身のようです エラー
ELMAHはある程度トラップ独自のエラーを行います。エラーを記録しようとしたときにErrorLogModule
が例外が発生した場合は、ログから生じた例外は標準の.NET Frameworkのトレース機能に送信されます。 1.0からライン123を参照してください。ます。
チュートリアル:たSystem.Diagnosticsとトレースの統合ASP.NET のトレース
AXDファイルが利用可能な場合ではありません SQL databseログが失敗します。
これは正しいです。 SQL Serverデータベース接続はSqlErrorLog
を使用している場合、SQL Serverデータベースに保存されたエラーを表示する機能である必要があります。
たとえば、SQL Serverデータベースがダウンしている場合は、ELMAHの意図した動作とは何ですか データベースが利用できない場合は?
、SqlException
は、ロギング中に発生します。 ELMAHは、標準の.NET Frameworkのトレース機能にSqlException
オブジェクトの内容を送信します。
この場合は、どのように私は自分のエラーを診断することができます 起こる?
ここでの最良のオプションはまた、エラーのとの電子メール送信のログを有効にすることです。データベースがダウンしている場合、チャンスはメールゲートウェイが稼働していることを優れているとあなたはまだエラーが通知されます。エラーは、実際には、は、いくつかのメールボックス(複数可)にをログに記録されます。これはまた、メールゲートウェイがこれまでダウンしているならば、チャンスは、データベースがアップになり、エラーがログに記録されますことをしているという追加の利点を持っています。両方がダウンしている場合は、しかし、あなたは真剣にあなたの生産インフラを見直し、おそらく追加措置を経由してお使いのシステムの健全性を監視するための措置をとる必要があります。
あなたはいつもエラーを記録するxmlファイルオプションを使用することができます。
私はあなたが少しコンテキストを混合していると考えています。
データベースが利用できない場合ELMAHの動作は、データベースにエラーを記録しないことです。例外は、サーバー上でスローされたり、ErrorSignal
経由で例外を発生させた場合、ELMAHは、その例外が黄色の画面やカスタムエラーページのいずれかに通過させようとした場合(あなたの設定。)
Errors.axdページには、ユーザーにそのエラーを提示しても大丈夫です(、理想的には)それを見てしなければならないものにのみアクセス可能ですので。
一番下の行は、エラーのデータベースがダウンした場合は、エラーを診断することができないということです。それが事実であれば、エラーデータベースは、本番データベースで座っているので、私たちのために、私たちは大きな問題を抱えていると思います。
私はまた、あなたの主なログソースのXMLロギングを使用しないことを提唱します。 SQLサーバーは、ファイルを管理することなく、あなたに最高のパフォーマンスを提供する予定です。そうでないXMLロギングと。