0

Web API にカスタム例外フィルターを実装しました。1 つの小さな詳細を除いて、意図したとおりに機能しています...

次のコード サンプルでは、​​SaveToErrorLog は例外の詳細を保存し、context.Request.RawUrl から要求 URL を取得しようとします。ただし、 context.Request には、例外が発生したときに API が提供しようとした URL が含まれていません。このような例外フィルターを使用するときに URL を取得する方法はありますか?

public class APIExceptionFilter : ExceptionFilterAttribute
{
    private HttpContextBase context;

    public APIExceptionFilter() 
    {
        context = new HttpContextWrapper(HttpContext.Current);
    }

    public override void OnException(HttpActionExecutedContext actionContext)
    {
        actionContext.Response = new HttpResponseMessage(HttpStatusCode.InternalServerError);       
        if (actionContext != null && context != null)
        {
            facade.SaveToErrorLog(actionContext.Exception, context.Request);
        }     

        throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
        {               
            Content = new StringContent(actionContext.Exception.Message),
            ReasonPhrase = "APIException"
        });
    }
}
4

1 に答える 1