Asp.net web api SingleInstance和InstancePerRequest在Web API 2下不工作

Asp.net web api SingleInstance和InstancePerRequest在Web API 2下不工作,asp.net-web-api,autofac,asp.net-web-api2,Asp.net Web Api,Autofac,Asp.net Web Api2,我有以下注册: builder .RegisterAssemblyTypes(assemblies) .Where(t => t.GetCustomAttributes(typeof(IocContainerMarkerAttribute), false).Any() && ((IocContainerMarkerAttribute)t.GetCustomAttribute(typ

我有以下注册:

       builder
            .RegisterAssemblyTypes(assemblies)
            .Where(t => t.GetCustomAttributes(typeof(IocContainerMarkerAttribute), false).Any()
                && ((IocContainerMarkerAttribute)t.GetCustomAttribute(typeof(IocContainerMarkerAttribute))).IsSingleInstance == false)
            .AsImplementedInterfaces()
            .InstancePerRequest()
            .PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies);

        builder
            .RegisterAssemblyTypes(assemblies)
            .Where(t => t.GetCustomAttributes(typeof(IocContainerMarkerAttribute), false).Any()
                          && ((IocContainerMarkerAttribute)t.GetCustomAttribute(typeof(IocContainerMarkerAttribute))).IsSingleInstance)
            .AsImplementedInterfaces()
            .SingleInstance()
            .PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies);
我试图请求以下依赖项:

[IocContainerMarker(false)]
public class SecurityProvider : ISecurityProvider
{}
像这样:

ar authenticationSecurityProvider = (ISecurityProvider)request.GetDependencyScope().GetService(typeof(ISecurityProvider));
如果我对第二个注册构建块进行注释,它可以正常工作,但如果我取消注释,则会出现以下异常:

从请求实例的作用域中看不到标记与“AutofacWebRequest”匹配的作用域。这通常表示根据HTTP请求注册的组件正被web集成下的SingleInstance()组件(或类似场景)请求。始终从DependencyResolver.Current或ILifetimeScopeProvider.RequestLifetime请求依赖项,而不是从容器本身

这似乎是一件很平常的事情,那么我在这里遗漏了什么呢

谢谢

更新


问题似乎是另一个。我需要将singleton依赖项注入InstancePerRequest对象。

结果是,我犯了一个错误,在SingleIntance对象中设置了InstancePerRequest依赖项