0
私はWebApi
プロジェクトを持っています。ここでは、メンテナンスフィルタを実装したいと思っています。 フィルタが2回呼び出されるという問題があります。だから私は正しいhttpステータスコードを取得しますが、フィルタは傍受されず、制御されたメソッドは通常呼び出されます。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);
}
こんにちは、この方法では、私の応答はすべてnullです。 – BHuelse
私はあなたが意味するものを見つけました。 'actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.ServiceUnavailable、 "Maintenance");' OnActionExecutingが動作すると、thx – BHuelse