我正在使用Autofac和WCF。我的服务(ExportWebService)需要具有依赖性(ExportService)。我设置ApplicationStart来执行此操作:
builder.Register(c => new ExportWebService(c.Resolve<ExportService>()));
但是当我这样做时,我收到错误:
范围内不会显示带有匹配'httpRequest'的标记的范围 在其中请求实例。这通常表明a 按HTTP请求注册的组件正在被a重新请求 SingleInstance()组件(或类似场景。)在Web下 集成始终请求来自的依赖项 DependencyResolver.Current或ILifetimeScopeProvider.RequestLifetime, 从来没有从容器本身。
我也试过了:
builder.RegisterType<ExportWebService>().InstancePerHttpRequest();
在我的服务中,我有:
public ExportService ExportService
{
get;
set;
}
public ExportWebService(ExportService exportService)
{
ExportService = exportService;
}
知道这里有什么问题吗?
答案 0 :(得分:0)
Autofac WCF支持没有InstancePerRequest
语义。 There is a detailed FAQ on troubleshooting per-request dependencies可能很有意思,但此处的简短版本可能是将您的ExportService
注册为SingleInstance
或InstancePerDependency
。