Asp.net mvc 4 调用控制器操作之前MVC4WebAPI上的自定义错误

Asp.net mvc 4 调用控制器操作之前MVC4WebAPI上的自定义错误,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,基于本文,我已经实现了自己的ExceptionFilterAttribute,并在GlobalConfiguration中注册了过滤器,以便在MVC4WebAPI中进行自定义异常处理 但是,ExceptionFilterAttribute仅在控制器操作中抛出的异常被调用,在该请求被框架解析之后 我还想为调用控制器操作之前抛出的异常实现自定义错误处理。例如,DelegatingHandler中抛出的异常当前会返回以下HTML: <!DOCTYPE html> <html>

基于本文,我已经实现了自己的
ExceptionFilterAttribute
,并在
GlobalConfiguration
中注册了过滤器,以便在MVC4WebAPI中进行自定义异常处理

但是,
ExceptionFilterAttribute
仅在控制器操作中抛出的异常被调用,在该请求被框架解析之后

我还想为调用控制器操作之前抛出的异常实现自定义错误处理。例如,
DelegatingHandler
中抛出的异常当前会返回以下HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Exception of type 'System.Exception' was thrown.</title>
        ...

引发了类型为“System.Exception”的异常。
...

对于这种情况,我需要怎么做才能返回我自己的自定义错误?

如果DelegatingHandler异常是从您编写的筛选器生成的,那么您可以添加另一个筛选器来“捕获”其中一些异常,如下所示


正如您已经发现并在该SO答案中记录的那样,您实际上从Web API管道“捕获”的异常非常有限。我看到的尝试执行您描述的操作的唯一选项是将自定义的
HttpMessageHandler
as编写。

如果DelegatingHandler异常是从您编写的筛选器生成的,那么您可以添加另一个筛选器来“捕获”其中一些异常

正如您已经发现并在该SO答案中记录的那样,您实际上从Web API管道“捕获”的异常非常有限。我看到的尝试执行您描述的操作的唯一选项是编写一个自定义的
HttpMessageHandler
as