0

모두. 나는 NServiceBus를 시작하고 Pluralsight와 인터넷 덕택에 기본 작업에 대해 꽤 잘 처리했다. 재고 MVC 4 프로젝트가 있고 컨트롤러에 대한 종속성 주입을 설치했습니다 (덕분에 this blog post). 여기NServiceBus/MVC 삽입 - Autofac은 IControllerFactory를 좋아하지 않습니다?

내가 Global.asax에 내 버스 설정이 방법은 다음과 같습니다

_bus = Configure.With() 
       .DefaultBuilder() 
       .ForMVC() 
       .Log4Net() 
       .XmlSerializer() 
       .MsmqTransport() 
       .UnicastBus() 
       .SendOnly(); 

을 나는 그래서 Session_End에 몇 가지 물건을 할 수있는 글로벌에서 버스에 액세스해야하기 때문에 로컬 전용 변수에 할당하고 . 내가 실행할 때, 나는 다음과 같은 오류 얻을 : Autofac이 유형을 해결하기 위해 시도 할 때 내 스택 추적에 따르면

The requested service 'System.Web.Mvc.IControllerFactory' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.

을, 실패 지점입니다. 위생을 위해 개인 변수를 제거하고 Configure 문만을 사용했습니다. 나는 또한 선택의 나의 IoC이기 때문에이 응용 프로그램에서 유선 Ninject 있습니다. 그것이 어떤 식 으로든 Autofac을 방해하고 있다고 생각하면서, 나는 여전히 작동하지 않는 방정식으로부터 Ninject를 제거했습니다.

제 질문은 무엇이 잘못 되었습니까? 내가 놓친 게 있니? 이것은 NServiceBus에서 처음이지만, 내가 본 모든 것에서 이것은 정상적으로 작동해야합니다. 모든 정보가 도움이 될 것입니다. 감사.
https://github.com/NServiceBus/NServiceBus/tree/develop/Samples/Messaging.Msmq/MyWebClient

답변

1

는 (다음 주요 릴리스이 V4에 대해 실행) 우리 MVC4 샘플에서보세요! 여기에 내 문제가 있었다. 이것은 내가 내 종속성 확인자 어댑터로 한 것입니다 : 내가 할 필요가 무엇

public object GetService(Type serviceType) 
{ 
    _builder.Build(serviceType); 
} 

당신이 당신의 MVC4 예제에서 한 일이었다

public object GetService(Type serviceType) 
{ 
    return (Configure.Instance.Configurer.HasComponent(serviceType)) ? _builder.Build(serviceType) : null; 
} 

나는 그것이 그 자체를 정렬하는 것이 한 후. 도와 주셔서 다시 한 번 감사드립니다!

+0

감사합니다. 나는 이번 주말에 그 레포를 포크로 만들 것이고, 아마도 내일 볼 수있다. 무엇이 다른지 보자. v4가 나올 때 어떤 생각이 들지? 무엇보다 호기심. :) –

0

내가 코드 존에서 해결책을 발견 :

관련 문제