我正在关注 TekPub ( http://tekpub.com/view/nsb/1 ) 上的 NSB 视频,作为对 NSB Studio 的介绍(顺便说一句,做得很好)。我可以很好地创建 PetShop 示例,但现在我正在寻找创建自己的系统。在 PetShop 示例中,流程从 Sales 组件(在 FrontEnd 端点中)开始在总线上发送SubmitOrder 命令。创建 SubmitOrder 命令后,Studio 创建了一个 SubmitOrderSender,它托管在 FrontEnd 端点中。
在我现有的系统中,我有一个可以做一些工作的进程,我想用一个事件而不是一个命令来启动 NSB 进程。在 Studio 中,我创建了一个新服务(“Foo”)并手动添加了一个新组件(“XxxRecievedSender”)。然后我让 XxxReceivedSender 发布一个事件(“XxxReceived”)。然后我右键单击 XxxReceived 事件,并添加了一个新订阅者(“通知”)。Studio 创建了通知服务并添加了一个订阅 XxxReceivedEvent 的“XxxReceivedProcessor”。
我从视频中注意到的不同之处在于,生成的 SubmitOrderSender 具有 ISubmitOrder 接口和 Send(SubmitOrder) 方法。因为我手动创建了我的 XxxReceivedSender,所以我没有这些,所以我添加了它们(除了 Publish 而不是 Send)。然后,在我的 mvc 前端,我将 IXxxReceivedSender 添加到家庭控制器,然后执行 Sender.Push(new XxxReceived())。然后,我遇到了需要将 MsmqSubscriptionStorage() 添加到 .configure() 的错误,然后出现更多未创建队列的错误。一旦我修复了这两个问题,应用程序就会运行,但是当事件发布时,不会收到 XxxReceivedProcessor。
我在想我在这里做错了什么,但我无法弄清楚它是什么。有什么建议吗?由于 Studio 是一个全新的功能,我会对正确使用它的方式非常感兴趣。