スタックトレースを送信せずに IIS http エラーコードを送信する

スタックトレースを送信せずに IIS http エラーコードを送信する

ASP.NET ベースの API があり、HTTP エラー コードが発生すると、それをサーバーからクライアントに送信する必要が生じます。ただし、スタック トレースを含む詳細な標準エラー メッセージ全体をユーザーに送信したくはありません。単純な「エラーが発生しました」というメッセージで十分です。

IIS のデフォルトの動作では、非ローカル クライアントには常に http 500 が送信されます。詳細なエラー メッセージ (エラー コードを含む) を送信できるようになりましたが、詳細を無効にすることはできますか?

そうでない場合、すべてのエラーに使用できる 1 つのカスタム エラー ファイルを追加し、特定のエラー コードをクライアントに送信することは可能ですか?

答え1

実際、私が所有する MVC アプリケーションの 1 つでは、逆の現象が発生しました。完全なエラーではなく、カスタム エラー ページが表示されていました。アプリケーションには、App_Start に FilterConfig.cs ファイルが含まれている必要があります。このファイルは次のようになります。

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }
}

customErrors がオンの場合、Error.cshtml 共有ビュー (~/Views/Shared/Error.cshtml) が表示されます。このビューをカスタマイズして、エラーに関する情報を必要に応じて多くまたは少なく表示することができます。

HTH

関連情報