アプリでカスタム エラーを有効にしています。Web 構成には、次のようなエントリがあります。
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml">
<error statusCode="403" redirect="~/Views/Shared/UnauthorizedAccess.cshtml"/>
<error statusCode="404" redirect="~/Views/Shared/FileNotFound.cshtml"/>
</customErrors>
また、HandleError
属性をグローバル アクション フィルターとして適用しています。私のFilterConfig
読みは次のとおりです。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
さらに、フォルダにはデフォルトがError.cshtml
定義されてい~/Views/Shared
ます。
それでも、私のアプリケーションは IE の醜いデフォルト エラー ページを表示します。
アップデート
カスタム エラー ページが IE 以外のすべてのブラウザで正常に表示されることを確認しました。ここでの取引は何ですか?
更なるアップデート
ちょうどこの記事を見つけました。http://perishablepress.com/important-note-for-your-custom-error-pages/
IE は、カスタム エラー ページのサイズを少なくとも 512 バイトにすることを要求しています。カスタム エラー ページがそのサイズよりも小さい場合、独自の醜いエラー ページがスローされます。
最新の更新 エラー ページのペイロードを増やしたので、すべてが機能するようになりました。ただし、未処理の例外については、既定の Error.cshtml ページのみが表示されます。その他のステータス コードについては、web.config ファイルで指定した場所にカスタム エラー ページが見つからなかったことを示す ASP.NET 404 が表示されます。カスタム エラー ページはありますが、web.config で指定した正確な名前が付けられています。