2012-06-12 27 views
0

我正在關注TekPub上的NSB視頻(http://tekpub.com/view/nsb/1),作爲NSB Studio(很棒的工作btw)的介紹。我可以很好地創建PetShop示例,但現在我正在尋找創建自己的系統的 。在PetShop示例中,流程從 開始,銷售組件(在FrontEnd端點中)在總線上發送 a SubmitOrder 命令。創建SubmitOrder命令後,Studio創建了一個 SubmitOrderSender,它是FrontEnd端點中託管的內容。NServiceBus Studio - 從事件開始

在我現有的系統中,我有一個過程,會做一些工作,我想 與事件,不是命令啓動NSB過程。在Studio中,我創建了一個 新服務(「Foo」)並手動添加了一個新組件(「XxxRecievedSender」)。然後讓Ixx發佈XxxReceivedSender事件(「XxxReceived」)。然後我右鍵點擊XxxReceived事件 ,並添加了一個新的訂戶(「通知」)。 Studio創建了通知服務並添加了訂閱XxxReceivedEvent的「XxxReceivedProcessor」 。

我從視頻中發現的差異是生成的 的SubmitOrderSender有一個ISubmitOrder接口和一個Send(SubmitOrder)方法。由於我手動創建了我的XxxReceivedSender,因此我沒有這些,因此我將它們添加到 (發佈除了發送以外)。然後,在我的mvc前端,我將 IXxxReceivedSender添加到家庭控制器,然後執行Sender.Push(新的 XxxReceived())。然後我得到了一些錯誤,我需要將MsmqSubscriptionStorage() 添加到.configure()中,然後再增加更多的錯誤,這些錯誤不是創建隊列。一旦 我修復了這兩件事情,應用程序就會運行,但是當事件發佈時,將不會接收到該XxxReceivedProcessor。

我在想我在這裏做錯了什麼,但我不知道它是什麼 是。有什麼建議?由於Studio是一項全新功能,因此我會非常感興趣地使用 。

回答

0

嘗試查看訂閱端點中的UnicastBusConfig,看看是否有一個條目告訴NServiceBus訂閱您在MVC端點的事件。

如果處理完畢,請自行啓動訂閱服務器,並看到郵件到達發佈商。如果是這樣,那麼啓動發佈者並查看該消息是否已處理,並且錯誤隊列中沒有消息。

+0

有。在訂戶端點有此 <添加消息= 「MyProject.Contract.XXXReceived,MyProject.Contract」 端點= 「MyProject.FrontEnd」/>