在Ninject Interceptor中捕获ApiController的异常

时间:2014-08-20 13:21:35

标签: asp.net ninject asp.net-web-api interception

嗨我在ApiController中遇到异常处理问题。

我将Ninject拦截器绑定到Controller动作,问题是拦截器永远不会看到任何抛出/ bellow Controller的异常。

public class ControllerInterceptor : IInterceptor
    {
        private DbContextTransaction transaction;

        public void Intercept(IInvocation invocation)
        {
            try
            {
                invocation.Proceed() // action will throw exception for sure
            }
            catch (Exception) // never executes even if there was exception in Proceed
            {

                throw;
            }
        }
    }        
}

我唯一的想法是ApiController捕获所有异常并且从不转发它们,所以对于拦截器来说,一切看起来都没有发生。任何人都可以证实这一点。

1 个答案:

答案 0 :(得分:1)

有同样的问题。 我在Ninject.Extensions.Interception.Linfu中使用了Ninject.Extensions.Interception。 决定将动作方法设为虚拟。