MVC3, Unity Framework e problema de gerenciador de duração por sessão

Em uma palavra simples, tento criar o gerenciador do Lifetime for Unity usando a Sessão Http no meu projeto MVC3. Minha implementação de exemplo do gerente da vida é:

    public class UnityPerSessionLifetimeManager : LifetimeManager
    {
        private string sessionKey;
        private HttpContext ctx;

        public UnityPerSessionLifetimeManager(string sessionKey)
        {
            this.sessionKey = sessionKey;
            this.ctx = HttpContext.Current;
        }

        public override object GetValue()
        {
            return this.ctx.Session[this.sessionKey];
        }

        public override void RemoveValue()
        {
            this.ctx.Items.Remove(this.sessionKey);
        }

        public override void SetValue(object newValue)
        {
            this.ctx.Session[this.sessionKey] = newValue;
        }
    }

No meu global.asax.cs, substituí a fábrica do controlador padrão pelo meu próprio UnityControllerFactory

    public class UnityControllerFactory : DefaultControllerFactory
    {
        private IUnityContainer container;

        public UnityControllerFactory(IUnityContainer container)
        {
            this.container = container;
            this.RegisterServices();
        }

        protected override IController GetControllerInstance(RequestContext context, Type controllerType)
        {
            if (controllerType != null)
            {
                return this.container.Resolve(controllerType) as IController;
            }

            return null;
        }

        private void RegisterServices()
        {
            this.container.RegisterType<IMyType, MyImpl>(new UnityPerSessionLifetimeManager("SomeKey"));
        }
    }
}

Defino pontos de interrupção em cada função deUnityPerSessionLifetimeManager notei que, quando a fábrica do controlador tenta resolver dependências do meu controlador, o HttpContext.Session é realmente nulo; portanto, o código falha ao recuperar da sessão ou salvar na sessã

Alguma idéia de por que a sessão é nula nesta fas

questionAnswers(2)

yourAnswerToTheQuestion