【发布时间】:2018-02-02 12:52:02
【问题描述】:
我正在尝试使用 NServiceBus 6 和 SqlPersistence 和 SqlDialect.MsSqlServer 在另一个项目中托管一个项目的 Saga。在我发现的大多数示例中,Saga 与托管应用程序包含在同一个程序集中,也许这就是我苦苦挣扎的原因。
当在同一个应用程序中托管所有内容时,NServiceBus.Persistence.Sql.MsBuild 包在构建过程中正确输出 Saga .sql 文件,然后选择这些文件并在运行时执行它们。使用单独的应用程序,只会生成 Outbox、Subscription 和 Timeout .sql 文件,而不是 Saga 文件。然后登录运行以下条目:
INFO NServiceBus.Persistence.Sql.Installer 目录 '[PATH]\SagaPersistence\Service\bin\Debug\NServiceBus.Persistence.Sql\MsSqlServer\Sagas' 未找到,因此不会执行 saga 创建脚本。
完整的 VS 2017 repro 可以在 https://github.com/WolfyUK/NServiceBusSagaSqlPersistence 找到。
首先,从另一个服务托管 Sagas 而不是自托管是一个坏主意吗?如果没有,有人可以建议解决 SQL 持久性问题的最佳方法吗?
【问题讨论】:
标签: msbuild nservicebus nservicebus-sagas