Web API コントローラーを含む /api フォルダーを持つ MVC プロジェクトがあります。私は次のものが欲しいです:
- エラーが発生したときにカスタム エラー ページを提供する MVC サイト
- デフォルトのエラー応答を提供する Web API (例外とスタック トレースを含む json/xml)
私の MVC サイトの web.config には、httpErrors ノードがあり、errorMode を "Custom" に設定して、404s/500s/etc のときに適切なエラー ページを表示できるようにしています。MVC サイトの閲覧中に発生します。
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<error prefixLanguageFilePath="" statusCode="404" path="Content\notfound.htm" responseMode="File" />
<error statusCode="500" path="/Errors" responseMode="ExecuteURL" />
<error statusCode="403" path="/Errors/Http403" responseMode="ExecuteURL" /></httpErrors>
ただし、その構成では、API はエラーが発生したときに、例外/スタック トレースを含む json/xml ではなく、カスタム エラー ページを提供します (これは望ましい動作です)。
Web API ではなく、MVC サイトにのみ適用されるようにカスタム エラーを構成する方法はありますか? このブログには存在しないと書かれていますが ( http://blog.krisandyson.com/2012/11/iis-httperrors-aspnet-web-api-fully.html )、他の誰かが作品を見つけたかどうかを知りたいです。そのブログが公開されて以来。
ない場合は、Web API プロジェクト用に別のプロジェクト/アセンブリを作成できると思います。これにより、MVC と Web API の httpErrors を個別に構成できますが、別のプロジェクトを作成したくないので、さらに別の web.config を構成する必要があります。