0

WebページにAsp.NetMVCを使用しています。そして、私は自分のWebページの訪問者にカスタムエラーメッセージを表示しようとしているので、追加しました

    <customErrors mode="On" defaultRedirect="/Error" >
    </customErrors>

私のweb.configに。

Webページで例外が発生したときに起動するインデックスアクションを備えたエラーコントローラーがあります。

しかし、サーバー上にない画像またはjavascriptファイルをリクエストすると、このタイプのリクエストでもカスタムエラーが発生し、サーバーからカスタムエラーページが届きました。

これはエラーの良い解決策ではないと思います。ブラウザは画像を待っていますが、応答はWebページであるためです。

  • 質問1-特定のファイルタイプのカスタムエラーを無効にしたいのですが、その方法がわかりません。

  • 質問2-また、404,500などのエラーがある場合。エラーと同じ応答コードを見たいです。

しかし、カスタムエラーの場合、応答コードは302です。実際のエラーコードが表示されることを期待しています。

最初の質問の解決策を見つけましたが、それがベストプラクティスであるかどうかわかりません。[画像]は[画像]フォルダーにあるため、[画像]フォルダーの特定の構成を作成します。

この行をweb.configに追加しました

   <location path="Images">
    <system.web>
      <customErrors mode="Off"></customErrors>
    </system.web>
  </location>
  • 質問3-それは良い解決策ですか?
4

1 に答える 1

0

HttpModuleイベントをサブスクライブするを作成しますError。StatusCodeを確認し、その404(見つからない)が要求されたファイルを確認します。画像の場合は、例外をクリアし、StatusCodeを404以外に設定すると、customErrorページが表示されなくなります。

元のステータスコードを維持することについては、それを自分HttpModuleにも保存して、エラーコントローラに戻すことができます。

于 2011-01-06T03:09:47.910 に答える