filterConfig 登録内で HandleError 属性を適用することにより、アプリケーションのグローバル エラー処理を有効にしました。
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
次に、カスタム エラー (web.config) を使用して、サーバー エラーごとにわかりやすいエラー メッセージが表示されることを願っています。
<customErrors mode="On" ></customErrors>
これはほとんどの例外で正常に機能しているようで、カスタム エラー ページ ビュー (共有ビュー フォルダー内の Error.cshtml) が表示されるという期待どおりの動作が得られました。
ただし、スローされたエラーが UnauthorizedAccessException である場合に見られる動作ではないことに最近気付きました。
フィドラーを見ると、この UnauthorizedAccessException 例外が標準の例外と同様にプレーンな 500 内部サーバー エラーを返すことがわかります。
では、なぜ標準例外は私の customError 設定に従っているのに、UnauthorizedAccessException はそうではないのでしょうか?
Aそして、どうすればそれらを同じように動作させることができますか? どちらも本質的にエンド ユーザーに表示されないようにしたいエラーです。