diff --git a/src/Orchard/Mvc/HttpContextAccessor.cs b/src/Orchard/Mvc/HttpContextAccessor.cs index 826bec0ce..0c5e3438a 100644 --- a/src/Orchard/Mvc/HttpContextAccessor.cs +++ b/src/Orchard/Mvc/HttpContextAccessor.cs @@ -6,6 +6,7 @@ namespace Orchard.Mvc { public class HttpContextAccessor : IHttpContextAccessor { readonly ILifetimeScope _lifetimeScope; private HttpContextBase _httpContext; + private IWorkContextAccessor _wca; public HttpContextAccessor(ILifetimeScope lifetimeScope) { _lifetimeScope = lifetimeScope; @@ -20,9 +21,10 @@ namespace Orchard.Mvc { if (_httpContext != null) return _httpContext; - var workContext = _lifetimeScope.IsRegistered() ? - _lifetimeScope.Resolve().GetContext(null) : null; + if (_wca == null && _lifetimeScope.IsRegistered()) + _wca = _lifetimeScope.Resolve(); + var workContext = _wca != null ? _wca.GetContext(null) : null; return workContext != null ? workContext.HttpContext : null; }