title: Scope error when using Autofac with SignalR
body: <p>I'm trying to inject an <code>HttpContextBase</code> in my SignalR hub:</p>
  
  <pre class="lang-cs prettyprint-override"><code>public class EventHub : Hub, IDisconnect
  {
      private readonly HttpContextBase _httpContextBase;
  
      public EventHub(HttpContextBase httpContextBase)
      {
          _httpContextBase = httpContextBase;
      }
  
      [...]
  }
  </code></pre>
  
  <p>The registration code looks like this:</p>
  
  <pre class="lang-cs prettyprint-override"><code>private static void InitAutofac()
  {
      var builder = new ContainerBuilder();
  
      var assembly = typeof (MvcApplication).Assembly;
  
      builder.RegisterControllers(assembly).PropertiesAutowired();
      builder.RegisterModule(new AutofacWebTypesModule());
      builder.RegisterFilterProvider();
  
      builder.RegisterAssemblyTypes(assembly)
          .Where(InterfaceBasedInjectedClasses())
          .AsImplementedInterfaces()
          .InstancePerLifetimeScope();
  
      builder.RegisterAssemblyTypes(assembly)
          .Where(InterfaceLessInjectedClasses())
          .InstancePerLifetimeScope();
  
      builder.RegisterType&lt;SurvivalContainer&gt;().InstancePerLifetimeScope();
  
      builder.RegisterType&lt;EventHub&gt;().InstancePerLifetimeScope();
  
      var container = builder.Build();
  
      DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
  
  
      GlobalHost.DependencyResolver = new SignalR.Autofac.AutofacDependencyResolver(container);
  
      RouteTable.Routes.MapHubs();
  }
  </code></pre>
  
  <p>And the error I'm getting is:</p>
  
  <blockquote>
    <p>[DependencyResolutionException: No scope with a Tag matching
    'httpRequest' is visible from the scope in which the instance was
    requested. This generally indicates that a component registered as
    per-HTTP request is being reqested by a SingleInstance() component (or
    a similar scenario.) Under the web integration always request
    dependencies from the DependencyResolver.Current or
    ILifetimeScopeProvider.RequestLifetime, never from the container
    itself.]</p>
  </blockquote>
  
  <p>Stacktrace:</p>
  
  <pre><code>Autofac.Core.Lifetime.MatchingScopeLifetime.FindScope(ISharingLifetimeScope mostNestedVisibleScope) +160
  Autofac.Core.Resolving.InstanceLookup..ctor(IComponentRegistration registration, IResolveOperation context, ISharingLifetimeScope mostNestedVisibleScope, IEnumerable`1 parameters) +57
  Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, IComponentRegistration registration, IEnumerable`1 parameters) +102
  Autofac.Core.Resolving.ResolveOperation.Execute(IComponentRegistration registration, IEnumerable`1 parameters) +64
  Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters) +164
  Autofac.Core.Container.ResolveComponent(IComponentRegistration registration, IEnumerable`1 parameters) +14
  Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object&amp; instance) +70
  Autofac.ResolutionExtensions.TryResolve(IComponentContext context, Type serviceType, Object&amp; instance) +70
  SignalR.Autofac.AutofacDependencyResolver.GetService(Type serviceType) in D:\etc\Dev\SignalR.Autofac\AutofacDependencyResolver.cs:30
  SignalR.Hubs.DefaultHubActivator.Create(HubDescriptor descriptor) +60
  SignalR.Hubs.DefaultHubManager.ResolveHub(String hubName) +27
  SignalR.Hubs.HubDispatcher.CreateHub(IRequest request, HubDescriptor descriptor, String connectionId, TrackingDictionary state, Boolean throwIfFailedToCreate) +445
  SignalR.Hubs.HubDispatcher.OnReceivedAsync(IRequest request, String connectionId, String data) +246
  SignalR.&lt;&gt;c__DisplayClass6.&lt;ProcessRequestAsync&gt;b__4(String data) +29
  SignalR.Transports.ForeverTransport.ProcessSendRequest() +63
  SignalR.Transports.ForeverTransport.ProcessRequestCore(ITransportConnection connection) +70
  SignalR.Transports.ForeverTransport.ProcessRequest(ITransportConnection connection) +5
  SignalR.PersistentConnection.ProcessRequestAsync(HostContext context) +560
  SignalR.Hubs.HubDispatcher.ProcessRequestAsync(HostContext context) +120
  SignalR.Hosting.AspNet.AspNetHandler.ProcessRequestAsync(HttpContextBase context) +422       SignalR.Hosting.AspNet.HttpTaskAsyncHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +68
  System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +301
  System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +155
  </code></pre>
  
  <p>I'm just getting started with autofac and SignalR and I find myself a little stuck. None of the related topics on SO helped. Any idea on what I'm doing wrong?</p>