0

是否可以使用自定义数据库名称(不是端点)来使用 ravenDb 持久化 nservicebus 主机传奇?

我使用 NServiceBus 3.3 和 RavenDB 2.5。并以这种方式初始化端点:

public class RavenConfig : IWantCustomInitialization
{
    public void Init()
    {
          Configure.Instance.RavenPersistence("AllHostsRavenDB");
          Configure.Instance.RavenSagaPersister();
          Configure.Instance.RavenSubscriptionStorage();
          Configure.Instance.UseRavenTimeoutPersister();
    }
 }

我的 App.config 包含:

<connectionStrings>
  <add name="AllHostsRavenDB" 
     connectionString="Url=http://localhost:8080; DefaultDatabase=ABC;" />
</connectionStrings>
4

2 回答 2

1

我终于让它工作了!我改变了我的自定义初始化:

public class RavenConfig : IWantCustomInitialization
{
    public void Init()
    {
      Configure.Instance.RavenPersistence("AllHostsRavenDB");
      Configure.Instance.RavenSagaPersister();
      Configure.Instance.RavenSubscriptionStorage();
      Configure.Instance.UseRavenTimeoutPersister();
    }
}

至:

public class RavenConfig : IWantToRunBeforeConfigurationIsFinalized
{
    public void Run()
    {
        Configure.Instance.RavenPersistence("AllHostsRavenDB");
        Configure.Instance.RavenSagaPersister();
        Configure.Instance.RavenSubscriptionStorage();
        Configure.Instance.UseRavenTimeoutPersister();
    }
}
于 2016-08-26T07:48:30.437 回答
0

从文档中:

要在代码中控制数据库名称,而不是通过配置,请使用 Configure.RavenPersistence(string connectionStringName, string databaseName) 签名。这在多租户场景中很有用。

http://docs.particular.net/nservicebus/ravendb/#nservicebus-3-and-nservicebus-4-overriding-the-defaults

那能解决你的问题吗?

于 2016-08-24T20:28:56.137 回答