16

UPD :エラー処理の完全なソリューションは次のとおりです

プレーンなバニラ MVC4 Web プロジェクトがあります。何も追加せず、何も削除せず、Visual Studio で新しいプロジェクトを作成しただけです。

web.configカスタム エラー ページ ハンドラーを追加しました。

<customErrors mode="On" defaultRedirect="~/Content/Error.htm" redirectMode="ResponseRewrite" />

~/Content/Error.htmファイルは次のとおりです。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>OOPS! Error Occurred. Sorry about this.</title>
</head>
<body>
    <h2>OOPS! Error Occurred</h2>
</body>
</html>

サイトで 404 エラーが発生するたびに、Error.htm は Firefox と Chrome でプレーンテキストとして提供されます。

HTMLはプレーンテキストとして表示されます

Fiddler は、エラー ページがcontent-typeヘッダーなしで提供され、ブラウザーがページをプレーンテキストとしてレンダリングするようになると述べています。

Content-type ヘッダーなし

content-typeヘッダー付きの IIS サーバー エラー ページを強制する方法はありますか??

ps実際の問題は、Global.asaxで独自のエラー処理を行う複雑なMVC4プロジェクトにあります。しかし、一部のエラーは ASP パイプを通過せず、IIS によってのみ処理されることがわかりました。URL の末尾にあるドットのように。< httpErrors />を使用したソリューションは正しい応答を提供しますが、Global.asax でのカスタム エラー処理、Application_Error() はこの方法で呼び出されません。

UPDどうやらこの戦争には勝てないようだ。IE は適切にレンダリングされた html を表示し、Firefox と Chrome はプレーン テキストとして表示します。プレーンテキストに切り替えると、Firefox と IE は空白を正しく表示し、IE は空白を飲み込んで html をレンダリングしようとします。エラーページとして画像を提供しようとすると、Firefox と Chrome で画像が表示されます。IE はこれを示しています: IE9はクラックです! Facepalm!

4

4 に答える 4

16

エラー ページには .htm の代わりに .aspx を使用します (htm の名前を aspx に変更します)。

<customErrors mode="On" defaultRedirect="~/Content/Error.aspx" redirectMode="ResponseRewrite" />
于 2013-03-20T21:24:33.043 に答える