我正在寫一個異常過濾器將記錄例外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);
}
}
我的問題是,我不我不知道該如何置換評論問題。我試圖探索HttpActionExecutedContext
,我從方法簽名去找到一種方法,一個System.Web.HttpContext
的成員樹,但我找不到任何辦法去那裏。
如何實現我的目標嗎?
'ApiController'不使用'HttpContext'或'HttpContextBase'。你可以使用'HttpContext.Current'來獲取它們,但只有當webapi託管在IIS中。如果您在IIS中託管,我相信您可以執行'ErrorSignal.FromCurrentContext()',或遵循Joanvo的答案。 – danludwig 2015-02-06 17:00:27
@danludwig:我正在IIS中運行此託管,因此可能會起作用。 – 2015-02-06 22:56:54