2013-02-06 2 views
0

메시지를 처리하는 버스 종단점이 있습니다. 그러나 이제이 처리기 내부의 버스에 다른 메시지를 다시 보내려고합니다.NServiceBus - 버스에 메시지 다시 넣기

이렇게하려면 버스에 대한 참조가 필요합니다.

그러나 나는 다음과 같은 시도하는 경우 :

public class ServerEndpoint: IWantToRunAtStartup 
{ 
    public static IBus Bus { get; set; } 

    public void Run() 
    { 
     int x = 5; 

     Bus = NServiceBus.Configure.With() 
      .DisableTimeoutManager() 
      .Log4Net() 
      .DefaultBuilder() 
      .XmlSerializer() 
      .MsmqTransport() 
       .IsTransactional(false) 
       .PurgeOnStartup(false) 
      .UnicastBus() 
       .ImpersonateSender(false) 
      .CreateBus() 
      .Start(); 

    } 

    public void Stop() 
    { 
    } 
} 

그럼 내가의 app.config에서 유니 캐스트 및 MSMQ CONFIGS를 넣어 경우에도 설정에 오류가 모든 종류의를 얻을.

누군가 포인터를 제공 할 수 있습니까? 나는 이것이 꽤 간단한 실수라고 기대하고 있습니다 !!

감사

던컨

편집 : 이것은 서버에 있습니다. 저를 혼란스럽게하는 것은 global.asax App_Start() 메소드에서 버스가 위의 코드를 사용하여 웹 애플리케이션에 구성되도록하는 것입니다. 그러나 ServerEndpoint (실제 '버스'dll, 호스트 내부에서 실행)에서이 작업을 수행하려고하면이 작업이 수행되지 않습니다. 내가 걸을 수 전에 실행하려고했다 -

+0

(참조의 busstop은 결제 테이크 2) 귀하의 프로젝트에 의존성 주입? 그렇다면 IBus 주입 위치에 코드를 넣으십시오. 구성의 DefaultBuilder() 메소드는 AutoFac 인 기본 DI를 사용하도록 Nservice 버스에 지시합니다. –

+2

NServiceBus.Host.exe를 사용하여 서버 측을 실행중인 것처럼 보입니다. 그렇다면이 코드가 필요하지 않습니다. 서버 설정 방법에 대한 예제는 FullDuplex 샘플을 참조하십시오. –

답변

0

감사를 참조 그것을 위해 의존성 주입을 사용합니다.

외모로 보아 다른 끝점으로 메시지를 보내려면 다른 어셈블리 (ServiceBus.Host)를 설정해야합니다.

버스는 DI를 사용하여 자동으로 생성되므로 결국 문제가되지 않습니다.

내가 안드레아스 Ohlund에 의해 우수한 인 Pluralsight 비디오 ( http://pluralsight.com/training/Courses/TableOfContents/nservicebus)을 지켜 그가 여기에 내장 된 예제를 따라 - 당신은 클라이언트 측 또는 서버 측에서 그것을 구성하는 당신이 어떤을 사용하고,

관련 문제