これは ASP.NET アプリ用です。web.config ファイルにあるものが見つからないため、アプリケーションをロードしようとするとランタイム エラーが発生します。カスタム エラー ページを表示したいのですが、web.config にエラーがあると、customerror 属性が機能しないのではないかと心配しています。そうですか?
web.config には、次のようなものがあります。
<system.web>
<customErrors configSource="config\customErrors.config" />
</system.web>
私のcustomError.configファイルには、これがあります:
<?xml version="1.0"?>
<customErrors defaultRedirect="~/ErrorPages/DefaultError.html" mode="On"/>
また、必要になると考えて承認属性も追加しました。違いがないように見えるので削除しました。
<location path="ErrorPages/DefaultError.html">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Config/customErrors.config">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
スタイルシートと画像のロケーション パスを追加しました。
これは実行時エラーです: 説明: サーバーでアプリケーション エラーが発生しました。このアプリケーションの現在のカスタム エラー設定では、アプリケーション エラーの詳細を表示できません。
そして、customerrors を off または remote only に設定し、mode を On にして customerror ページを作成するように求められます。これは既に持っています。
モードがオフの場合、エラーは次のとおりです: ファイルまたはアセンブリ 'AntiXSSModule' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
私のカスタムエラーページは、アプリケーションにログインしているときとログイン前に問題なく動作します。また、これらのタイプのエラーをキャッチできるようにしたいと考えています。これは、いくつかのファイル/参照が欠落しているため、web.config に含めるべきではない行ですが、クラッシュする代わりに、customerror ページを表示できるようにしたいと考えています。
<add name="ValidateInput" type="AntiXSSModule.ValidateInput, AntiXSSModule"/>
エラーが発生する行の上と前に配置して、それが問題になると考えて、場所のパスを移動しようとしました。質問CustomErrors mode="Off"を見ましたが、これは同じエラーですが、属性を追加しても問題は解決しませんでした。これを追加すると、構成ファイルでエラーが発生します。
問題は、web.config ファイルのエラーに起因するエラーをどのようにキャッチできるかということです。これはまだ試していませんが、さまざまな質問を見て、global.asax; にメソッドを追加できることがわかりました。Application_Exception または Application_Error のいずれかです。現在、Application_Start と Application_End のメソッドしかありません。
私は ASP.NET を初めて使用します。すぐにこれを使用したいのですが、何か提案はありますか?