web.configで404ハンドラーページを設定しましたが、URLの拡張子が.aspx(またはASP.NETで処理されるその他)の場合にのみ機能します。Webサイトオプションで静的HTMLページを設定できることは知っていますが、ページが必要です。IISのすべての要求拡張機能にASPXハンドラーページを割り当てるオプションはありますか?
7 に答える
直接の質問は、ASPXハンドラーをすべてのリクエスト拡張機能に割り当てるオプションがあるかどうかでした。はい、あります。その方法については、後ほど説明します。
まず、「隠された」質問(本当に必要な答え)は、ASPX、ASMXなど以外のページの404エラーすべてをリダイレクトする方法があるかどうかだと思います。はい、あります。これはより良い方法です。それがあなたが抱えている問題を解決するかどうかの選択。
IIS 6のすべての404をリダイレクトするには、Webアプリケーションルート(独自のサイトまたはメインサイトの仮想ディレクトリ)を右クリックし、[プロパティ]を選択します。そこから、[カスタムエラー]タブを選択します。リストで404を見つけて、目的のリダイレクトに変更します。
さて、それで十分でない場合、そして私は本当にそれが十分であることを願っています。はい、ASPXハンドラーを介してすべてのページを実行できます。ただし、これを行うには、効率の点でかなり高いコストがかかります。生のHTML /画像の提供は、動的なものよりもかなり高速です。
これを行うには、Webアプリケーションのルートを右クリックして[プロパティ]を選択します。「ホームディレクトリ」タブを選択します。「構成」をクリックします。新しいウィンドウがポップアップします。ASP.NETページサーブの1つからパスをコピーし、ワイルドカードアプリケーションマップに使用します。
繰り返しになりますが、これはほとんどの場合間違った答えであることを覚えておいてください。それはあなたのパフォーマンスに悪影響を及ぼし、チェーンソーを使って七面鳥を彫るのと同じです。それがあなたのためにうまくいくならば、私はこれよりも最初のオプションを強くお勧めします。
詳細については:
これは、IIS7がもたらすいくつかの優れた機能の1つです。すべてのページはハンドラーを介してルーティングされるため、カスタム404を実行でき、便利なことに、任意のファイルのディレクトリおよびファイルレベルのセキュリティ(aspと同じweb.configのものに基づく) IIS7より前の.netファイル)。
したがって、概念的には「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 に変更できます。