14

設定Response.StatusCode = 404は IE8 でも Chrome でもコンテンツを提供しませんか? 奇妙だと思いますが、Mozilla で動作します。

空の Default.aspx ページで空の asp.net Web アプリケーション プロジェクトを実行します。Page_Load イベントでは、以下を使用します。

protected void Page_Load( object sender, EventArgs e )
{
    Response.StatusCode = 404;
}

これにより、現在のリクエストのステータス コードが効果的に 404 に設定されます。IE8 や Chrome でレンダリングする場合、または他のブラウザでレンダリングする場合、テストしていませんが、実際のページはまったく表示されません。これらのブラウザーは、既定の 404 エラー ページを表示します (既定の IIS カスタム エラーではありません)。IE8 での例:

The webpage cannot be found 
 HTTP 404  
   Most likely causes:
•There might be a typing error in the address.
•If you clicked on a link, it may be out of date. ... and so on ...

私が本当にやりたいのは、404 エラー コードを含む 404 エラー ページを提供することです。これにより、実際にブラウザーやクローラー、またはこのページが存在しないことを誰にでも伝えることができます。ステータス メッセージ 200 OK を含む派手なカスタム エラー メッセージを表示するだけではありません。 .

フィドラーを使用すると、実際にはリクエストを実際に処理していることがわかりますが、ブラウザはそれを完全に無視していますか?!

私の質問 - 404 ステータス コードを設定し、ページ コンテンツをレンダリングするにはどうすればよいですか? 例 - http://www.intel.com/invalidpage.wow。fiddler を使用すると、このページが 404 ステータス コードで提供されていることがわかります。

4

2 に答える 2

10

デフォルトでは、IE は、エラーに対する応答が設定可能な量よりも少ない場合、カスタム エラー ページを表示します。その量は 512 バイトだと思いますが、これについて何らかの確認を見つけようとします。したがって、あなたがする必要があるのは、応答にもっと多くのコンテンツを入れることだけです。

編集:このブログ投稿では、制限について説明しています。コメントの 1 つは、これらの値を変更するためのレジストリ キーの設定を示しています。キーは次のとおりです。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\ErrorThresholds

于 2009-09-24T21:41:34.400 に答える
0

コンテンツを提供せず、カスタム エラー ページを Web サーバー レベル (IIS) で設定するか、asp.net の場合は web.config で設定します。

于 2009-09-24T20:05:31.633 に答える