2016-10-18 3 views
0

私のテストサーバには例外が発生していましたが、アプリケーションの洞察に何も記録されていないことがわかりました。私は問題を再現することができました。私のDEVアプリケーションの洞察では、サーバーの例外がログに記録されていました。Application Insightsは "サーバ例外のデータなし"をログに記録します

enter image description here

は、だから、私はテスト・アプリケーションの洞察力に戻って、再び問題が、まだ(さえ時間かそこら後に)記録されていないエラーを複製します。私はそれが「失敗した要求」だけではないサーバーの例外として、それらをログに記録します見ることができますしかし

enter image description here

。サーバーの例外がなければ、スタックトレース/エラーメッセージは表示されません。

enter image description here

私は、これらの例外をログに記録するlog4netのアプリの洞察拡張子を使用しています。どちらの場合も同じコードが実行されているので、明らかにコードの問題ではありません。だから私は構成の問題を見た。

  • 私のlog4net.configとapplicationinsights.configには、DevからTest(またはprod)への変換はありません。彼らは同じままです。

  • 私のWeb.configには、debug = trueを標準として削除する変換しかありません。

  • 私はいくつかの環境プロパティをAzure(Azure Websitesを使用)で設定しますが、実際にアプリケーションを変更するのは、別のAppInsightsに切り替えるためのAppInsightsInstrumentationキーだけです。しかし、私はいくつかのものをロギングしているので、このキーが正しいことを知っています。ここで

答えて

0

は、私がBasecontrollerで例外をログに記録された解答(ちょっと)

だ、これは私のローカルマシン上でうまく働いたと私はを通じてデバッグすることができます。

リモートでプッシュすると何が起きるのですか.netのエラー処理が始まります。特にグローバルな "HandleErrorAttribute"(あなたのFilterConfig.csを確認してください)。これは、例外をキャプチャして飲み込むようです。主にElmahのような他のログツールについて話しているときに、この動作を無効にしたい場合は、これに関する他の話がたくさんあります。

私がテスト環境でしか見ることができない理由は、CustomErrorsがデフォルトでremoteOnlyになっているからです。だから私はそれが私のマシン上にないときにログを記録していないことがわかります。私は、エラーを自分で処理していますので

、私は今

filters.Add(new HandleErrorAttribute()); 

とサーバの例外がログに記録されなければならない私のFilterConfig.csからこの行を削除することができます(私はまた、ユーザーが自分のBaseControllerでの素敵なエラーページを示す扱います今のところ)

関連する問題