Я пишу фильтр исключений, который будет регистрировать исключения Elmah, так что я делаю что-то вроде этого:Как я могу получить текущий HttpContext от HttpActionExecutedContext
class ExceptionLoggingFilter : System.Web.Http.Filters.IExceptionFilter
{
public Task ExecuteExceptionFilterAsync(HttpActionExecutedContext actExecContext,
CancellationToken cancellationToken)
{
var httpContext = // what do I do here?
var errorSignal = ErrorSignal.FromContext(httpContext); // this is Elmah
errorSignal.Raise(actExecContext.Exception, httpContext);
}
}
Моя проблема заключается в том, что я не» t знать, что поставить вместо вопроса комментариев. Я попытался изучить дерево-член HttpActionExecutedContext
, которое я получаю от сигнатуры метода, чтобы найти способ для System.Web.HttpContext
, но я не могу найти способ добраться туда.
Как я могу выполнить свою цель здесь?
'ApiController' не использует' HttpContext' или 'HttpContextBase'. Вы можете обратиться к ним с помощью 'HttpContext.Current', но только тогда, когда webapi размещен в IIS. Если вы размещаете в IIS, я считаю, что вы можете просто выполнить 'ErrorSignal.FromCurrentContext()' или следовать за ответом Джоанво. – danludwig
@danludwig: Я запускаю это в IIS, так что, вероятно, это сработает. –