ASP.NET/IIS:すべてのファイル タイプの場合は 404
-
02-07-2019 - |
質問
web.config で 404 ハンドラー ページを設定しましたが、URL の拡張子が .aspx (または ASP.NET によって処理されるその他) の場合にのみ機能します。ウェブサイトのオプションで静的 HTML ページを設定できることはわかっていますが、ページが必要です。IIS のすべての要求拡張機能に ASPX ハンドラー ページを割り当てるオプションはありますか?
解決
直接的な質問は、ASPX ハンドラーをすべての要求拡張機能に割り当てるオプションがあるかどうかでした。はいあります。その方法については後ほど説明します。
まず、「隠された」質問、つまりあなたが本当に望んでいる答えは、ASPX、ASMX など以外のページのすべての 404 エラーをリダイレクトする方法があるかどうかだと思います。はい、あります、そしてこれは より良い あなたが抱えている問題を解決できるかどうかを選択してください。
IIS 6のすべての404をリダイレクトするには、Webアプリケーションルート(独自のサイトまたはメインサイトの仮想ディレクトリであるかどうか)を右クリックし、「プロパティ」を選択します。そこから、[カスタムエラー]タブを選択します。リストで 404 を見つけて、目的のリダイレクトに変更します。
これで十分でない場合は、そうであることを心から願っていますが、ASPX ハンドラーを介してすべてのページを実行できます。ただし、これを行うには、効率の点でかなりのコストがかかります。生の HTML/画像の提供は、動的なものよりもかなり高速です。
これを行うには、Webアプリケーションルートを右クリックして「プロパティ」を選択します。 [Home Directory]タブを選択します。「構成;」をクリックします新しいウィンドウがポップアップします。ASP.NET ページ サービスの 1 つからパスをコピーし、それをワイルドカード アプリケーション マップに使用します。
もう一度覚えておいてください、これは 間違った答え ほとんどの時間。それはパフォーマンスに悪影響を及ぼし、チェーンソーを使って七面鳥を切り分けるのと同じことです。うまくいく場合は、このオプションよりも最初のオプションを強くお勧めします。
他のヒント
詳細については:
これは、IIS7 がもたらすいくつかの優れた点の 1 つです。すべてのページがハンドラーを通じてルーティングされるため、カスタム 404 と、便利なことに、ディレクトリおよびファイル レベルのセキュリティを実行できます。 どれでも ファイル (IIS7 より前の asp.net ファイルと同じ web.config に基づいています)。
したがって、概念的には「II7 を使用する」が答えです (いずれ「その」答えになるでしょう)。しかし、もちろん、W2k8 (またはそれ以上) でホストしていない/ホストされていない場合、これはそれほど実用的なものではありません。
web.config は、その Web サイトによって制御されるページのエラー ページのみをセットアップできます。ASP.Net アプリケーションの範囲外に他のページがある場合は、IIS でそれらの処理を設定します。404 ページを構成するためのオプションがあり、カスタム ページを指すことができます。
他に考えられるのは、すべての拡張機能を asp.net に渡すことだけです。
これにより、あらゆる種類のファイルが asp.net によって処理され、カスタム エラー ページが機能します。
IIS アプリケーション構成では、ワイルドカード マッピング (「.*」) を C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll に設定できます。
IIS でワイルドカード マッピングをセットアップできます (アプリケーション構成/マッピング/ワイルドカード マッピング/ - aspnet_isapi.dll を実行可能ファイルとして設定し、[ファイルが存在することを確認する] ボックスのチェックを外すだけです)。これにより、すべての受信リクエストがアプリにルーティングされ、動作を制御できます。そこから直接。
IIS アプリケーション設定で静的ページをセットアップする必要はありません。私見では、有効な URL をセットアップできるはずです (例:/error_handler.aspx) をアプリから取得し、特定のサーバー エラーが発生した場合にランディング ページとして使用されます。
IIS では、404 エラーのカスタム エラーを設定し、サイトのプロパティの URL に送信できます。
デフォルトで静的HTMLを示していますc: windows help iishelp common 404b.htm
サイト上の相対 URL に変更できます。