无法从具有 SQL 持久性的另一个服务托管 NServiceBus Saga
Unable to host an NServiceBus Saga from another Service with SQL Persistence
我正在尝试使用带有 SqlPersistence
和 SqlDialect.MsSqlServer
的 NServiceBus 6 在另一个项目中托管来自一个项目的 Saga。在我发现的大多数示例中,Saga 与托管应用程序包含在同一个程序集中,也许这就是我苦苦挣扎的原因。
在同一应用程序中托管所有内容时,NServiceBus.Persistence.Sql.MsBuild
包在构建期间正确输出 Saga .sql
文件,然后选取这些文件并在 运行 上执行它们。使用单独的应用程序,只会生成 Outbox
、Subscription
和 Timeout
.sql
文件,不会生成 Saga 文件。然后在 运行 上记录以下条目:
INFO NServiceBus.Persistence.Sql.Installer Directory '[PATH]\SagaPersistence\Service\bin\Debug\NServiceBus.Persistence.Sql\MsSqlServer\Sagas' not found so no saga creation scripts will be executed.
可以在 https://github.com/WolfyUK/NServiceBusSagaSqlPersistence 找到完整的 VS 2017 重现。
首先,从其他服务托管 Sagas 而不是自托管是个坏主意吗?如果没有,有人可以建议解决 SQL 持久性问题的最佳方法吗?
您可以将 NServiceBus.Persistence.Sql.MsBuild
添加到 Saga
项目中吗?然后应该在那里找到脚本。不幸的是,它们没有复制到主机的文件夹中,因此您必须将它们从那里带到生产环境中。或者像您已经在做的那样,使用 EnableInstallers
生成它们。
我正在尝试使用带有 SqlPersistence
和 SqlDialect.MsSqlServer
的 NServiceBus 6 在另一个项目中托管来自一个项目的 Saga。在我发现的大多数示例中,Saga 与托管应用程序包含在同一个程序集中,也许这就是我苦苦挣扎的原因。
在同一应用程序中托管所有内容时,NServiceBus.Persistence.Sql.MsBuild
包在构建期间正确输出 Saga .sql
文件,然后选取这些文件并在 运行 上执行它们。使用单独的应用程序,只会生成 Outbox
、Subscription
和 Timeout
.sql
文件,不会生成 Saga 文件。然后在 运行 上记录以下条目:
INFO NServiceBus.Persistence.Sql.Installer Directory '[PATH]\SagaPersistence\Service\bin\Debug\NServiceBus.Persistence.Sql\MsSqlServer\Sagas' not found so no saga creation scripts will be executed.
可以在 https://github.com/WolfyUK/NServiceBusSagaSqlPersistence 找到完整的 VS 2017 重现。
首先,从其他服务托管 Sagas 而不是自托管是个坏主意吗?如果没有,有人可以建议解决 SQL 持久性问题的最佳方法吗?
您可以将 NServiceBus.Persistence.Sql.MsBuild
添加到 Saga
项目中吗?然后应该在那里找到脚本。不幸的是,它们没有复制到主机的文件夹中,因此您必须将它们从那里带到生产环境中。或者像您已经在做的那样,使用 EnableInstallers
生成它们。