【问题标题】:Using NServiceBus in CQRS在 CQRS 中使用 NServiceBus
【发布时间】:2013-07-08 18:22:23
【问题描述】:

我正在尝试为我们的网站实施 CQRS 模型。主要思想是每个服务(模块)都将通过 json Web 服务调用,该服务将依次触发更新命令。现在我的 CQRS 项目只是一个用 c# 编写的简单类库。当我必须在最后发布事件时,我需要 Bus 对象,但我没有得到它(即 bus 对象为 null),因为我没有将 nservice bus 作为外部应用程序运行。有没有一种方法可以在不从外部线路命令运行应用程序的情况下初始化总线。

任何帮助将不胜感激,

谢谢

【问题讨论】:

  • 那么,您尝试将 NSB 托管在什么位置? IIS、WinForms、WPF?
  • 到目前为止,计划是将此 CQRS 项目的 dll 引用到 Web 服务项目中,并在 IIS 上托管该 Web 服务。 NserviceBus 在 CQRS 类库项目中被引用。

标签: c# nservicebus cqrs


【解决方案1】:

为了在 IIS 中托管 NServiceBus,您需要手动配置它。这方面的说明是here

NServiceBus 可以托管在任何进程中,但是,在 IIS 中托管不是best idea in some scenarios 可能是有原因的。通常最好将命令发送到托管 NServiceBus 处理程序的通用主机。这通常部署为 Windows 服务并处理特定类型的消息(命令)。

希望这会有所帮助。

【讨论】:

  • 感谢您,我正在尝试在我的类库项目中而不是在我的 Web 服务应用程序中创建总线。我正在尝试实例化总线,但它给了我错误“MessageForwardingInCaseOfFaultConfig”配置部分丢失并且找不到备份配置部分“MsmqTransportConfig”以定位错误队列”,现在我检查了我的 app.config 和上面提到的标签在那里。抱歉,如果我之前不清楚在类库项目而不是 Web 服务中创建总线。
  • 查看这篇文章以获得更多帮助:particular.net/articles/…
  • 您缺少的部分是 部分中的一行,它是这一行:
  • @sa1986 您不能单独将 app.config 用于类库。你总是需要一个宿主进程。主机进程包含一个配置文件。对于 IIS 托管进程(ASP.NET 或 Web 服务),您可以使用根目录中的 Web.config 文件。对于 WinForms、控制台或 WPF 应用程序,您可以使用根目录中的 App.Config 文件。
  • @DennisvanderStelt 在我的 app.config 中有这些部分。我正在尝试按照您提供链接的示例进行操作,唯一不同的是我正在尝试为 wcf 服务实现它,并给我以下错误:NServiceBus 已检测到您正在 Web 上下文中运行但传入了一个空同步器。请传入对 System.Web.UI.Page 或 System.Web.Mvc.AsyncController 的引用。参数名称:同步器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多