我正在尝试使用 NServiceBus 6SqlPersistence
和. 从另一个项目中的一个项目托管 Saga SqlDialect.MsSqlServer
。在我发现的大多数示例中,Saga 与托管应用程序包含在同一个程序集中,也许这就是我苦苦挣扎的原因。
当在同一个应用程序中托管所有内容时,NServiceBus.Persistence.Sql.MsBuild
包在构建过程中正确输出 Saga.sql
文件,然后在运行时选择这些文件并执行它们。使用单独的应用程序,只会生成和文件Outbox
,而不是 Saga 文件。然后登录运行以下条目:Subscription
Timeout
.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 持久性问题的最佳方法吗?