使用EmbeddableDocumentStore的NServiceBus 5 RavenDBPersistence SetDefaultDocumentStore

时间:2014-10-08 13:54:19

标签: c# .net ravendb nservicebus

我正在使用我自己的进程中托管的NServiceBus以及使用RavenDB.Embedded在同一进程中托管的RavenDB。

当我使用NServiceBus 4.6.5时,这个组合没有任何问题,但我升级到NServiceBus 5.0.0并更新了配置以使用新配置api。

所有内容都构建完毕,我可以将消息发送到收到的端点并构建一个saga实例。

但是,NServiceBus会抛出一条消息:

  

没有配置saga persister。如果要使用nservicebus saga支持,请配置saga persister

我在NServiceBus 4.6.5中成功使用了以下配置:

Configure.With()
         .DefaultBuilder()
         .RavenPersistenceWithStore(DocumentStore)

使用NServiceBus 5.0.0我尝试了以下配置而没有任何运气:

1

configuration.UsePersistence<RavenDBPersistence>()
             .SetDefaultDocumentStore(DocumentStore);

2

configuration.UsePersistence<RavenDBPersistence>()
             .SetDefaultDocumentStore(DocumentStore)
             .UseDocumentStoreForSagas(DocumentStore);

3

configuration.UsePersistence<RavenDBPersistence>()
             .SetDefaultDocumentStore(DocumentStore)
             .UseDocumentStoreForSagas(DocumentStore)
             .UseDocumentStoreForSubscriptions(DocumentStore)
             .UseDocumentStoreForTimeouts(DocumentStore);

以及所有三个有和没有:

configuration.EnableFeature<RavenDbSagaStorage>();

如果我使用InMemoryPersistence,那么一切都很好。

还有其他人在使用RavenDB.Embedded和NServiceBus 5.0.0时遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

我让这个再次起作用,我缺少的是:

configuration.AssembliesToScan
            (typeof(SomeMessage).Assembly,
             typeof(SomeHandler).Assembly,
             typeof(RabbitMQTransport).Assembly,
             typeof(RavenDBPersistence).Assembly);

我应该在问题中提到我已经设置了配置来扫描我的消息和处理程序程序集以及RabbitMQTransport的程序集。

我以前不需要扫描以下装配,但现在显然必须:

typeof(RavenDBPersistence).Assembly