Asp.net web api 在ASP.NET Web API 2 ExceptionHandlerAttribute中,抛出未找到异常的方法

Asp.net web api 在ASP.NET Web API 2 ExceptionHandlerAttribute中,抛出未找到异常的方法,asp.net-web-api,asp.net-web-api2,Asp.net Web Api,Asp.net Web Api2,我正在使用ExceptionHandlerAttribute处理Web Api 2中的异常 public class ExceptionHandlerAttribute : ExceptionFilterAttribute { public ExceptionHandlerAttribute() { } public override void OnException(HttpActionExecutedContext actionExecut

我正在使用
ExceptionHandlerAttribute
处理Web Api 2中的异常

public class ExceptionHandlerAttribute : ExceptionFilterAttribute
{
    public ExceptionHandlerAttribute()
    {    
    }     

    public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        HandleException(actionExecutedContext);
    }

    private void HandleException(HttpActionExecutedContext actionExecutedContext)
    {
       // Log exception here
    }
}
在其中一个控制器中,我下面有一个异步方法抛出异常(我知道为什么这个方法抛出异常,但这不是问题)

public异步任务GetOrders(FilterDTO过滤器)
{
返回等待_dbcontext.Orders
.Include(x=>x.User)
.Where(x=>x.OrderDate>filters.StartOrderDate&&x.IsApproved)
.Select(x=>neworderdto()
{
OrderID=x.OrderID,
金额=x.金额,
OrderDate=x.OrderDate,
LastModifiedUser=x.User.ToDto()
})
.ToListAsync();
}
当上述方法中发生异常时,Web Api框架会按预期调用已注册的
ExceptionHandlerAttribute
OneException()
方法。但是在过滤器中,我得到
方法未找到错误

HandleException
方法是同一类中的私有方法,我不知道为什么它找不到该方法

更新1(堆栈跟踪)

位于XXXXXXXXX.Api.Filters.ExceptionHandlerAttribute.HandleException(HttpActionExecutedContext actionExecutedContext)\r\n
位于XXXXXXXXX.Api.Filters.ExceptionHandlerAttribute.OneException(HttpActionExecutedContext actionExecutedContext)中的 C:\repos\XXXXXXXXXX\Src\Api\Filters\ExceptionHandlerAttribute.cs:line 30\r\n在 System.Web.Http.Filters.ExceptionFilterAttribute.OneExceptionAsync(HttpActionExecuteContext actionExecutedContext,CancellationToken CancellationToken)


根据图像中的异常消息,它找不到
HttpActionExecutionContext.Request
。将确切的消息/桩跟踪显示为文本,并包括从代码段中排除的
HandleException
方法的主体。同意。但为什么它在调用HandleException方法时抛出异常呢?如果您注意到,我在第一行的
HandleException
中有一个调试器。那个调试器永远不会成功。它甚至不执行
HandleException
方法,在调用
HandleException
内部
OnException
时会抛出错误,直到我看到上面的堆栈跟踪更新1和堆栈跟踪更新问题:你确定,运行应用程序时使用的.net framework是否正确安装并可用?应用程序正在使用正确的IIS运行时设置运行?
    public async Task<IEnumerable<OrderDTO>> GetOrders(FilterDTO filters)
    {
        return await _dbcontext.Orders
            .Include(x => x.User)                
            .Where(x => x.OrderDate > filters.StartOrderDate && x.IsApproved)
            .Select(x => new OrderDTO()
            {
                OrderID = x.OrderID,
                Amount = x.Amount,
                OrderDate = x.OrderDate,                    
                LastModifiedUser = x.User.ToDto()
            })
            .ToListAsync();
    }