use PerExecutionContextLifetimeManager.CurrentHttpContext instead of HttpContext.Current