基本的:
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 に移行するまで、ほとんどの場合はできませんでした)。