2013-02-06 35 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() 
    { 
    } 
} 

然後我得到的所有類型的配置錯誤,即使我把單播和MSMQ CONFIGS在App.config。

任何人都可以提供指針,我希望這是一個相當直接的錯誤!

感謝

鄧肯

編輯:這是在服務器上。讓我感到困惑的是,總線在global.asax App_Start()方法中使用上面的代碼在Web應用程序中配置。但是當試圖在ServerEndpoint(實際的'總線'DLL,在主機內部運行')中執行此操作時,這不起作用。

+0

你在客戶端或服務器端配置它,你使用任何項目中的依賴注入?如果是的話,儘量把代碼放在注射IBus的地方。配置中的DefaultBuilder()方法告訴Nservice總線使用它的默認DI,即AutoFac –

+2

它看起來像使用NServiceBus.Host.exe運行服務器端。如果是這種情況,則不需要任何此代碼。有關如何設置服務器的示例,請參閱FullDuplex示例。 –

回答

0

感謝所有的反饋 - 我試圖運行我可以走了。通過外觀的東西,要發送消息到另一個端點,我需要設置一個不同的程序集(ServiceBus.Host)。

總線是使用DI自動創建的,所以這畢竟不是問題。

我看了由Andreas奧朗德優秀Pluralsight視頻(http://pluralsight.com/training/Courses/TableOfContents/nservicebus),隨後,他在這裏建的例子(見巴士站就 - 開票以2)