У меня есть проект WebApi
, где я хочу реализовать средство обслуживания. Теперь у меня есть проблема, что фильтр вызывается дважды. Итак, я получил правильный http statuscode, но фильтр не перехватывает, и мои методы в управляемых вызываются, как правило.Как перехватить фильтр-цепочку для обслуживания в проекте WebApi
Что мне нужно сделать, чтобы мой фильтр правильно перехватывал и не вызывал другого метода?
public class MaintenanceFilter : ActionFilterAttribute
{
[Dependency]
public IUaCRepository UaC { get; set; }
public override void OnActionExecuting(HttpActionContext actionContext)
{
base.OnActionExecuting(actionContext);
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
if (UaC != null && UaC.CheckMaintenance(WebApiConfig.CONFIG_STANDARD))
{
var response = actionExecutedContext.Response;
response.StatusCode = HttpStatusCode.ServiceUnavailable;
return;
}
base.OnActionExecuted(actionExecutedContext);
}
}
наилучшие пожелания
[EDIT] Это soleved моей проблемы:
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (UaC != null && UaC.CheckMaintenance(WebApiConfig.CONFIG_STANDARD))
{
actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.ServiceUnavailable, "Maintenance");
return;
}
base.OnActionExecuting(actionContext);
}
Привет, в этом методе мой ответ - это все. – BHuelse
Я понял, что вы имеете в виду. 'actionContext.Response = actionContext.Request.CreateErrorResponse (HttpStatusCode.ServiceUnavailable, «Maintenance»); в работе OnActionExecuting, thx – BHuelse