1

リモートホストが接続を閉じると、System.Web.HttpExceptionがより深く発生するカスタムActionResultがあります。コントローラーのOnExceptionメソッドを既にオーバーライドしましたが、そこでキャッチされていません。ASP.NET MVCパイプラインは、コントローラーのアクションの実行を既に完了しており、この例外が発生すると、返されたActionResultを実行しています。

現在、それはバブリングしていて、エラーとして私のログを乱雑にしています。リモートホストがコンテンツのダウンロードを中止することをエラーとは見なさないため、ログ記録時にこれらを除外したくありません。

このエラーを直接処理したいのですが、どこにあるのかわかりません。Controller.OnExceptionが機能しないため、IExceptionFilterも機能しないと思います。Application_OnErrorを使用することもできますが、それが高すぎるのではないかと心配しています。

もっとMVCっぽい方法はありませんか?

4

2 に答える 2

2

Controller.OnExceptionとApplication_OnErrorの間に例外をキャッチする他のポイントはありません。勇気を出して、Application_OnErrorを使用してください

于 2012-07-31T13:44:20.380 に答える
2

HandleErrorAttributeを使用して、コントローラーアクションでスローされた例外を処理できます。あなたがあなたの質問で指摘したように、私はエラーがこの属性の範囲を超えているのではないかと思います。これにより、Application_OnErrorのみが残ります。

ホワイトリストをエラー処理コードに追加して、特定のエラー(特定のコードを持つ特定のタイプ、および特定のソース/スタックトレース)を無視することができます。

于 2012-07-31T13:57:25.850 に答える