小编Lau*_*i I的帖子

ASP.NET Web API异常过滤器 - 从HttpRequestBase获取请求URL的方法?

我已经为我的Web API实现了一个自定义异常过滤器.它按预期工作,除了一个小细节......

在以下代码示例中,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"
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

.net asp.net asp.net-mvc exception asp.net-web-api

0
推荐指数
1
解决办法
3614
查看次数

标签 统计

.net ×1

asp.net ×1

asp.net-mvc ×1

asp.net-web-api ×1

exception ×1