Exception handling Web API 2.2中的全局异常处理程序未捕获异常

Exception handling Web API 2.2中的全局异常处理程序未捕获异常,exception-handling,asp.net-web-api2,Exception Handling,Asp.net Web Api2,我在.NET4.5中有一个WebForms网站项目,其中添加了ASP.NETWebAPI2.2Nuget包。 正在成功调用Web API方法并返回预期值 但是,在我为Web API 2.2创建了一个全局异常处理程序类,并将控制器类名从ProductController更改为Product以强制执行以下错误后,全局异常处理程序没有捕获到该错误 从ProductController的Web API类中删除控制器后缀时的错误消息 {"Message":"No HTTP resource was fou

我在.NET4.5中有一个WebForms网站项目,其中添加了ASP.NETWebAPI2.2Nuget包。 正在成功调用Web API方法并返回预期值

但是,在我为Web API 2.2创建了一个全局异常处理程序类,并将控制器类名从ProductController更改为Product以强制执行以下错误后,全局异常处理程序没有捕获到该错误

从ProductController的Web API类中删除控制器后缀时的错误消息

{"Message":"No HTTP resource was found that matches the request URI 'http://localhost/mysite/Vendors/api/
 Product/SaveProductName'.","MessageDetail":"No type was found that matches the controller named 'Product'."}
我的问题:为什么全局异常处理程序没有捕获此错误,而是在成功找到Web API方法时捕获Web API方法中抛出的异常,即ProductController类名没有更改以故意导致异常

如下所示的全局异常处理程序

public class GlobalExceptionLogger : ExceptionLogger
{
 public GlobalExceptionLogger()
  {

  }

public override void Log(ExceptionLoggerContext context)
 {
    if (context != null && context.Exception != null)
    { 
          MyLogging.Log( context.Exception );
    }
    base.Log(context);
 }
}
Web API控制器类(对于全局异常处理程序未捕获的错误,我将类名更改为Product)


它没有被捕获,因为WebAPI捕获它并将其转换为404响应。框架本身处理这种情况,而不是用户代码

 public class ProductController: ApiController
{
    //Methods omitted to SAVE SPACE
}