1

简介
我最近使用 NServiceBus 设计器工具在同一解决方案中创建了一些应用程序。这一切都很好,因为它使我可以将所有内容保持在既定标准。我注意到的是,该工具似乎希望在我创建的服务中将所有消息、命令和事件保留在它们自己的程序集中。

考虑以下设置:
解决方案名称:TestCompany已
创建服务:TestCompany.Sales、TestCompany.Finance、TestCompany.Monitoring

以上将创建一个 TestCompany.InternalMessages 程序集,并且监控服务本质上是一个中心点,其中记录了可能发生的任何错误。我希望其他服务可以通过它发送消息。

问题
在这种情况下,我担心的是,我希望销售服务向财务服务发送消息,并在发生错误时向监控发送错误消息。在 unicastbus 设置中,您输入程序集及其目的地,但是我基本上想为程序集中的不同消息输入不同的目的地。我知道我可以很好地创建自己的程序集并将消息移动到它,但这似乎与设计师试图推动我的目标背道而驰。有什么建议么?

更新

我相信我必须处理的问题与安装建模模板的方式略有关系。我注意到它们不太适合我,因为我无法将组件添加到端点设计器,也无法在没有收到空引用异常的情况下右键单击。删除并重新安装似乎无法解决问题。

4

2 回答 2

1

我们在建模工具中采用这种方法的原因是 Visual Studio 的性能会随着项目数量的增加而降低。在当前的计划中,这是最小的弊端。

您应该查看的一件事是内置的审核功能,因为它们会将流经系统的所有消息转发到中央队列 - 您可以将监控服务放在该中央队列后面。

于 2012-09-02T09:21:07.153 回答
0

您可以为程序集中的每条消息输入目标。我不知道这是如何通过 NServiceBus 设计器工具完成的,但在您的配置中,这看起来像:

<UnicastBusConfig>
    <MessageEndpointMappings>
        <add Messages="TestCompany.SalesMessages.NewSaleCreatedMessage" Endpoint="FinanceService" />
        <add Messages="TestCompany.SalesMessages.ErrorMessage" Endpoint="MonitoringService" />
    </MessageEndpointMappings>
</UnicastBusConfig>

最佳做法是为每个服务创建一个消息程序集。(同样我不知道设计师如何处理这个)

于 2012-08-24T08:20:14.067 回答