基本的:
IncludeErrorDetailPolicy
解決しない場合は代わりに使用CustomErrors
してください (たとえば、ASP.NET スタックが 2012 年を超える場合):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
注: 詳細なエラー情報を返すと、機密情報が「ハッカー」に明らかになる可能性があることに注意してください。以下のこの回答に関するサイモンのコメントを参照してください。
TL;DR バージョン
私にとってCustomErrors
は本当に役に立ちませんでした。すでに に設定されていましたOff
が、まだわずかなan error has occurred
メッセージしか表示されませんでした。受け入れられた答えは、今日のWeb用語では長い3年前のものだと思います。私は Web API 2 と ASP.NET 5 (MVC 5) を使用しており、Microsoft は IIS のみの戦略から離れましたが、CustomErrors
古い学校の IIS です ;)。
とにかく、私は地元にはない生産上の問題を抱えていました。そして、開発マシンのように Chrome の [ネットワーク] タブにエラーが表示されないことがわかりました。最後に、本番サーバーにChromeをインストールし、サーバー自体(「localhost」など)でアプリを参照することで、問題を解決できました。その後、スタック トレースとすべてでより詳細なエラーが表示されました。
その後、Jimmy Bogard の記事を見つけました(注: Jimmy is mr. AutoMapper! )。面白いことに、彼の記事も 2012 年のものですが、その中で彼は、CustomErrors
これはもう役に立たないと説明していますがIncludeErrorDetailPolicy
、グローバル WebApi 構成で別の設定を行うことで「エラーの詳細」を変更できると説明しています (例: WebApiConfig.cs
):
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy
= IncludeErrorDetailPolicy.Always;
幸いなことに、彼は webapi (2) DOES が設定をリッスンするように設定する方法も説明していCustomErrors
ます。これは非常に賢明なアプローチであり、これにより 2012 年に戻ることができます :P.
注: デフォルト値は「LocalOnly」です。これは、この投稿を見つける前に、説明した方法で問題を解決できた理由を説明しています。しかし、すべての人がリモートで本番環境にアクセスしてブラウザーを起動できるわけではないことは理解しています (フリーランスと DevOps に移行するまで、ほとんどの場合はできませんでした)。