【发布时间】:2015-04-28 08:15:09
【问题描述】:
我正在实现hangFire,它是我项目中的一个作业调度库。
我面临的问题与link 中所面临的问题相同
但是,将 LifestylePerWebRequest() 替换为 HybridPerWebRequestTransient() 后,我仍然收到相同的错误消息:
HttpContext.Current 为空。 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());
}
}
如果需要任何其他信息,请告诉我。
【问题讨论】:
-
在我看来,IApiHraComment 仍然有 LifestylePerWebRequest。因此,如果这个组件是从没有 Http.Context 的容器中解析出来的,我希望它会抛出。您能在错误消息中找到导致异常的组件吗?
-
实际上我只使用
IApiHra。它也有其他依赖项,我尝试将它们全部混合但没有用。IApiHra导致异常 -
@SJMan 你有没有想过这个问题?
-
有什么解决办法吗?我正在努力解决同样的问题。
标签: castle-windsor ioc-container castle-windsor-3