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