0

我正在尝试使用 NServiceBus 6SqlPersistence和. 从另一个项目中的一个项目托管 Saga SqlDialect.MsSqlServer。在我发现的大多数示例中,Saga 与托管应用程序包含在同一个程序集中,也许这就是我苦苦挣扎的原因。

当在同一个应用程序中托管所有内容时,NServiceBus.Persistence.Sql.MsBuild包在构建过程中正确输出 Saga.sql文件,然后在运行时选择这些文件并执行它们。使用单独的应用程序,只会生成和文件Outbox,而不是 Saga 文件。然后登录运行以下条目:SubscriptionTimeout .sql

INFO NServiceBus.Persistence.Sql.Installer 目录 '[PATH]\SagaPersistence\Service\bin\Debug\NServiceBus.Persistence.Sql\MsSqlServer\Sagas' 未找到,因此不会执行 saga 创建脚本。

可以在https://github.com/WolfyUK/NServiceBusSagaSqlPersistence找到完整的 VS 2017 repro 。

首先,从另一个服务托管 Sagas 而不是自托管是不是一个坏主意?如果没有,有人可以建议解决 SQL 持久性问题的最佳方法吗?

4

1 回答 1

1

你可以添加NServiceBus.Persistence.Sql.MsBuildSaga项目中吗?然后应该在那里找到脚本。不幸的是,它们没有被复制到主机的文件夹中,因此您必须将它们从那里带入生产环境。或者让它们通过 using 生成EnableInstallers,就像你已经在做的那样。

于 2018-02-12T13:52:49.880 回答