Comment résoudre Autofac InstancePerHttpRequest

J'ai enregistré un composant comme ça dans mon Global.asax.cs:

ContainerBuilder builder = new ContainerBuilder();
builder.RegisterControllers(Assembly.GetExecutingAssembly());

builder.RegisterType<WebWorkContext>().As<IWorkContext>().InstancePerHttpRequest();

IContainer container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

//This is where my error happens, not sure why?
var workContext = container.Resolve<IWorkContext>();

WebWorkContext classe:

public class WebWorkContext : IWorkContext
{
     //Left out other code
}

IWorkContext interface:

public interface IWorkContext
{
     //Left out other code
}

L'erreur que j'obtiens est:

Pas de portée avec une Étiquette correspondant à "httpRequest" est visible à partir de l'étendue dans laquelle l'instance a été demandé. Cela indique généralement qu'un composant inscrit en tant que par requête HTTP est reqested par une instance unique (des) composant (ou un scénario similaire.) En vertu de l'intégration web et toujours à la demande des dépendances de la DependencyResolver.Actuelles ou ILifetimeScopeProvider.RequestLifetime, jamais à partir du conteneur.

Comment puis-je obtenir que cela fonctionne? Ce pourquoi je veux de cette façon est parce que le contexte de travail, poignées de trucs comme l'obtention de la clientèle actuelle, etc.

Quelques questions supplémentaires. Est-il sage/les meilleures pratiques pour inscrire tous à la fois? L'scénarios que j'ai besoin d'ajouter plus de composants à une autre étape?

source d'informationauteur Brendan Vogt