2015-04-28 2 views
3

Я реализую hangFire, который является библиотекой планирования заданий в моем проекте.Замок windsor образ жизни вопрос

я столкнулся такая же проблема, как столкнулись в этом 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()); 
    } 
} 

Пожалуйста, дайте я знаю, требуется ли какая-либо другая информация.

+0

Мне кажется, что IApiHraComment по-прежнему имеет LifestylePerWebRequest. Поэтому, если эти компоненты разрешены из контейнера без Http.Context, я ожидаю, что он будет метаться. Вы можете найти в сообщении об ошибке, какой компонент вызывает исключение? – Marwijn

+0

Фактически я использую только 'IApiHra'. У этого есть и другие зависимости, я попытался сделать их все гибридами, но он не сработал. 'IApiHra' вызывает исключение – SJMan

+0

@SJMan Вы когда-нибудь это понимали? –

ответ

0

См. Ответ Krzysztof Kozmic here. Ваш компонент IApiHra, вероятно, имеет зависимость PerWebRequestLifestyle.