Asp.net web api 为什么OneException总是捕获NullReferenceException

Asp.net web api 为什么OneException总是捕获NullReferenceException,asp.net-web-api,Asp.net Web Api,这是一个奇怪的。在我的WebAPI中,我实现了ExceptionFilterAttribute以处理从控制器引发的异常: public override void OnException(HttpActionExecutedContext actionExecutedContext) { string actionName = actionExecutedContext.ActionContext.ActionDescriptor.ControllerDescriptor

这是一个奇怪的。在我的WebAPI中,我实现了ExceptionFilterAttribute以处理从控制器引发的异常:

public override void OnException(HttpActionExecutedContext actionExecutedContext)
    {
        string actionName = actionExecutedContext.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerName + "/" + actionExecutedContext.ActionContext.ActionDescriptor.ActionName;

        if (actionExecutedContext.Exception is UnauthorizedAccessException)
        {
        }
        else if (actionExecutedContext.Exception is BadRequestException)
        {
        }
        else
        {
        }

    }
但是,当运行此操作时,actionExecutedContext.Exception始终是NullReferenceException。即使我测试了这一点,并手动从我的控制器发出一个UnauthorizedAccessException,同样的事情也会发生


有人知道为什么我的例外被替换了吗?如何获得我的原始异常?

如果我不得不猜测,那么分配给
actionName
本身导致NRE的情况如何?你正在挖掘很多东西,你确定它们都在那里吗?如果你在代码中的某个地方打破了最初抛出
NullReferenceException
的地方?Dean,请注意。一旦我打开它,我可以看到我们有另一个过滤器,它接收HttpResponseMessage并使用它,而不检查它是否为null,但是因为控制器抛出异常,所以没有响应消息。如果你想写答案,我会接受的。