NServiceBus 4.6.5 NHibernate Saga持久化器不持久化Saga数据

NServiceBus 4.6.5 NHibernate Saga持久化器不持久化Saga数据,nhibernate,persistence,nservicebus,nservicebus4,nservicebus-sagas,Nhibernate,Persistence,Nservicebus,Nservicebus4,Nservicebus Sagas,我正在与NHibernate一起使用NServiceBus,并在我自己的流程中托管该总线。我使用的配置是: Configure.ScaleOut(s => s.UseSingleBrokerQueue()); Configure.Transactions.Enable(); Configure.Features.Enable<Sagas>(); Configure.Serialization.Xml(); ret

我正在与NHibernate一起使用NServiceBus,并在我自己的流程中托管该总线。我使用的配置是:

Configure.ScaleOut(s => s.UseSingleBrokerQueue());
        Configure.Transactions.Enable();
        Configure.Features.Enable<Sagas>();
        Configure.Serialization.Xml();

        return
            Configure.With()
                     .DefaultBuilder()
                     .DefiningCommandsAs(type => type.Namespace != null && type.Namespace.EndsWith("Contracts.Commands"))
                     .DefiningEventsAs(type => type.Namespace != null && type.Namespace.EndsWith("Contracts.Events"))
                     .DefiningMessagesAs(type => type.Namespace != null && type.Namespace.EndsWith("Contracts.Messages"))
                     .RijndaelEncryptionService()
                     .UseTransport<RabbitMQ>()
                     .PurgeOnStartup(false)
                     .UnicastBus()
                     .RunHandlersUnderIncomingPrincipal(false)
                     .ImpersonateSender(false)
                     .LoadMessageHandlers()
                     .UseNHibernateSubscriptionPersister()
                     .UseNHibernateSagaPersister()
                     .UseNHibernateTimeoutPersister()
                     .DisableTimeoutManager()
                     .CreateBus()
                     .Start
                (() => {
                     Configure.Instance.LicensePath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "NServiceBus-Licence.xml"));
                     Configure.Instance.ForInstallationOn<Windows>().Install();
                 });
Configure.ScaleOut(s=>s.UseSingleBrokerQueue());
Configure.Transactions.Enable();
Configure.Features.Enable();
Configure.Serialization.Xml();
返回
用()配置
.DefaultBuilder()
.DefiningCommandsAs(type=>type.Namespace!=null&&type.Namespace.EndsWith(“Contracts.Commands”))
.DefiningEventsAs(type=>type.Namespace!=null&&type.Namespace.EndsWith(“Contracts.Events”))
.DefiningMessagesAs(type=>type.Namespace!=null&&type.Namespace.EndsWith(“Contracts.Messages”))
.RijndaelEncryptionService()
.UseTransport()
.PurgeOnStartup(错误)
.UnicastBus()
.RunHandlerSunderingPrincipal(false)
.ImpersonateSender(错误)
.LoadMessageHandlers()
.UseNHibernateSubscriptionPersister()文件
.UseNHibernateSagaPersister()
.UseNHibernateTimeoutPersister()文件
.DisableTimeoutManager()
.CreateBus()
开始
(() => {
Configure.Instance.LicensePath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“NServiceBus license.xml”);
Configure.Instance.ForInstallationOn().Install();
});
与:


这个配置使用我在我的SQL Server数据库中指定的字段为我的传奇创建表,这非常好

然而,当我的Saga运行并完成时,NServiceBus似乎没有将记录插入到我的Saga表中

表格在那里,只是没有数据


这是意料之中的吗?NServiceBus是否会在传奇成功完成后永久删除传奇条目?

我自己的问题的答案是

NServiceBus在saga完成后删除saga数据表中的条目

<connectionStrings>
    <add name="NServiceBus/Transport" connectionString="host=localhost" />
    <add name="NServiceBus/Persistence" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=testdb;Persist Security Info=True; Connect Timeout=200; Pooling=True; Max Pool Size=5000; Async=true; Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
    <add key="NServiceBus/Persistence/NHibernate/dialect" value="NHibernate.Dialect.MsSql2012Dialect" />
    <add key="NServiceBus/Persistence/NHibernate/connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
    <add key="NServiceBus/Persistence/NHibernate/connection.driver_class" value="NHibernate.Driver.Sql2008ClientDriver" />
</appSettings>