通过NServiceBus使用数据库

通过NServiceBus使用数据库,nservicebus,Nservicebus,在阅读NServiceBus的文档时,我发现当扩展到多台机器时,它可以(也应该)使用数据库获取订阅信息 但它没有说明如何。我看过其他的文档,但我不知道如何做到这一点(尽管我承认我还没有全部阅读) 有人能告诉我在哪里可以找到这些信息吗?或者告诉我怎么做?您需要配置DBSubscriptionStorage而不是MsmqSubscriptionStorage。 这可以通过多种方式实现: 定义生产配置文件 在app.config中定义DBSubscriptionStorage(在Subscripti

在阅读NServiceBus的文档时,我发现当扩展到多台机器时,它可以(也应该)使用数据库获取订阅信息

但它没有说明如何。我看过其他的文档,但我不知道如何做到这一点(尽管我承认我还没有全部阅读)


有人能告诉我在哪里可以找到这些信息吗?或者告诉我怎么做?

您需要配置DBSubscriptionStorage而不是MsmqSubscriptionStorage。 这可以通过多种方式实现:

  • 定义生产配置文件
  • 在app.config中定义DBSubscriptionStorage(在SubscriptionStorage下)
  • 或者通过NServiceBus.Configure.With().DbSubscriptionStorage中的代码定义它

如果您对其中任何一个有详细的问题,请评论或编辑您的问题。

如果您使用的是NServiceBus.Host(很可能是),NServiceBus配置文件实际上覆盖了“Configure.With()”内容。例如,启动主机时,它会自动配置为使用NServiceBus.Lite配置文件运行。这意味着它将使用内存中的订阅存储而不是数据库订阅存储——即使您指定了DBSubscriptionStorage()。诀窍是使用NServiceBus.Production命令行参数运行主机

此外,IConfigureHisendPoint实现还必须实现“AsA_Publisher”

换句话说,如果希望NServiceBus与数据库订阅存储对话,它必须运行NServiceBus.Production配置文件(或您自己的自定义配置文件),并配置为发布服务器