Autofac - 实例范围WCF

时间:2014-10-14 05:31:31

标签: autofac

我正在使用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;
}

知道这里有什么问题吗?

1 个答案:

答案 0 :(得分:0)

Autofac WCF支持没有InstancePerRequest语义。 There is a detailed FAQ on troubleshooting per-request dependencies可能很有意思,但此处的简短版本可能是将您的ExportService注册为SingleInstanceInstancePerDependency