【发布时间】:2017-02-23 21:09:17
【问题描述】:
希望针对在管道早期发生的 WebApi 项目中的错误返回自定义错误页面,而不是黄屏。
我已经替换了默认的 IExceptionHandler。
它比不处理的异常过滤器处理更多错误
- 异常过滤器内部出错
- 与路由相关的异常
- 消息处理程序类中的错误
- 控制器构造函数中的错误
然而并不是所有的异常都通过替换 IExceptionHandler 来处理
例如如果我在 Application_BeginRequest 中抛出一个错误(只是管道早期发生的错误的一个示例),它不会被它拾取,并且我得到一个黄色屏幕。打开自定义错误后,它是一个缩小的黄屏,但仍然是一个黄屏。
如何处理所有错误(即使是在管道的早期阶段),并使用正确的响应代码返回自定义 JSON 错误,就像自定义异常处理程序触发时所做的那样。
一些文章 http://www.c-sharpcorner.com/article/exception-handling-in-asp-net-web-api/ https://www.exceptionnotfound.net/the-asp-net-web-api-exception-handling-pipeline-a-guided-tour/ https://www.jayway.com/2016/01/08/improving-error-handling-asp-net-web-api-2-1-owin/ (我没有使用OWIN,但仅供参考)
我可以在 Global.asax Application_Error 事件中捕获错误
【问题讨论】:
-
我认为您正在努力,如果这么早出现错误,那么您肯定写错了,代码不会生效。很高兴我错了
标签: c# asp.net-web-api error-handling