我建立使用ASP.NET的Web API一个简单的REST服务。
我有关我的控制器与一个自定义的ActionFilterAttribute方法之一,覆盖它的OnActionExecuted。 在动作过滤器我用将要被发送(actionExecutedContext.Response)的响应。
整个应用程序与用于记录错误的自定义ExceptionFilterAttribute覆盖onException的关联。
现在的问题 - 当异常是从控制器的方法提出的,我希望两个中的一个:
1. onException的会先启用远,则OnActionExcuted与适当的响应。
2.只有OnExcpetion调用的,因为动作并没有真正执行完毕。
实际发生的是,OnActionExecuted被调用时,响应为空,结果另一个异常(这个时候空引用)上升,夹在onException的和loggs错误例外。
我的问题是:
1.为什么如有异常已提出的OnActionExecuted叫? 如果不是onException的先调用? 将解释appriciated。
2.据我所知,OnActionExecuted应该改变,什么是应该做的正确方法? 总的来说,我需要做什么,该actionExecutedContext.Response或actionExecutedContext.Exception不为空(除了在onException的方法明显的检查)之前检查? 我根据我在属性的行动代码,总有一个反应,但显然不是。
任何帮助将appriciated,在此先感谢:)!