3

无论如何在不安装 RavenDB 的情况下使用 NServicebus 4 吗?我们使用的是 2.5,我想升级到 4,但如果我们必须在生产服务器上安装 RavenDB,这将是一个艰难的销售。有什么解决办法吗?

4

1 回答 1

9

是的。您可以在没有 RavenDB 的情况下使用 NServiceBus。而默认订阅存储(用于发布/订阅)、默认 saga 持久化和默认超时持久化是 RavenDB,使用如下所示的自定义初始化,您可以将它们切换为 NHibernate 持久化,在这种情况下,您将不需要 RavenDB。

class CustomInit : INeedInitialization
{
    public void Init()
    {
        Configure.Instance.UseNHibernateSubscriptionPersister();
        Configure.Instance.UseNHibernateSagaPersister();
        Configure.Instance.UseNHibernateTimeoutPersister();
    }
}

并且使用 NHibernate 的 app.config 在 4.x 中进一步简化

         <connectionStrings>
<add name="NServiceBus/Persistence" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=nservicebus;Integrated Security=True"/>

并在 appSettings 中指定其他所需的 NHibernate 设置,如下所示:

    <appSettings>
<!-- dialect is defaulted to MsSql2008Dialect, if needed change accordingly -->
<add key="NServiceBus/Persistence/NHibernate/dialect" value="NHibernate.Dialect.MsSql2008Dialect" />
<!-- other optional settings examples -->
<add key="NServiceBus/Persistence/NHibernate/connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
<add key="NServiceBus/Persistence/NHibernate/connection.driver_class" value="NHibernate.Driver.Sql2008ClientDriver" />

于 2013-08-10T00:11:15.207 回答