2015-04-28 46 views
3

我正在实施hangfire,这是我的项目中的作业调度库。城堡温莎生活方式问题

我面临着同样的问题,因为面对这一link

然而,随着HybridPerWebRequestTransient()更换LifestylePerWebRequest()我仍然得到同样的错误消息后:

HttpContext.Current为null。 PerWebRequestLifestyle只能在ASP.Net中使用

这里有一对夫妇我的依赖安装的线路:

container.Register(Component.For<IApiHra>() 
          .ImplementedBy(typeof(ApiHra)) 
          .LifeStyle.HybridPerWebRequestTransient() 
          .IsFallback()); 

container.Register(Component.For<IApiHraComment>() 
          .ImplementedBy(typeof(ApiHraComment)) 
          .LifestylePerWebRequest() 
          .IsFallback()); 

这是在温莎控制器工厂控制器安装

public class ControllersInstaller : IWindsorInstaller 
{ 
    public void Install(IWindsorContainer container, IConfigurationStore store) 
    { 
     container.Register(Classes.FromThisAssembly() 
            .BasedOn<IController>() 
            .LifestyleTransient()); 
    } 
} 

请让我知道是否需要其他信息。

+0

在我看来,IApiHraComment仍然有LifestylePerWebRequest。所以如果这个组件是从没有Http.Context的容器中解决的话,我希望它抛出。你能在错误消息中找到哪个组件导致异常? – Marwijn

+0

实际上我只使用'IApiHra'。它也有其他的依赖关系,我试图让它们都是混合型,但它没有奏效.'IApiHra'导致了异常 – SJMan

+0

@SJMan你有没有想过这个? –

回答

0

请参阅Krzysztof Kozmic的回答here。您的IApiHra组件可能具有PerWebRequestLifestyle依赖关系。