mongo-csharp-driver 2.0 / nservicebus.mongodb 2.1无法再连接到Mongo

时间:2015-07-08 18:43:25

标签: mongodb nservicebus

我们最近将NserviceBus.MongoDb软件包从2.0.3更新到2.1。这也将mongo-csharp-driver软件包从1.10更新到2.0.1。我们现在在服务启动时看到以下异常:

  

2015-07-08 11:29:16,589 [1] WARN NServiceBus.MongoDB.Internals.MongoHelpers [(null)]<(null)> - 无法使用:server201.localco.test:27017联系Mongo。   如果您使用的是副本集,请确保所有Mongo实例server201.localco.test:27017都可用。   要将NServiceBus配置为使用不同的连接字符串,请在配置文件中添加名为“NServiceBus / Persistence”的连接字符串。   原因:System.InvalidOperationException:没有当前主节点。      在MongoDB.Driver.MongoServer.Ping()      位于d:\ Development \ NServiceBus.MongoDB \ src \ NServiceBus.MongoDB \ Internals \ MongoHelpers.cs中的NServiceBus.MongoDB.Internals.MongoHelpers.VerifyConnectionToMongoServer(MongoClientAccessor mongoClientAccessor):第50行

我们的nservicebus端点配置中唯一相关的行是:

configuration.UsePersistence<MongoDBPersistence>();    

我们的连接字符串是:

<add name="NServiceBus.Persistence" connectionString="mongodb://server201.localco.test/?replicaSet=rs0" />

如果我卸载/回滚2.1 / 2.0.1到2.0.3 / 1.10(nservicebus.mongodb / mongo-csharp-driver),错误就会消失。

更新:我看到数据库本身(带有TimoutData集合)实际上是在Mongo中创建的......

2 个答案:

答案 0 :(得分:2)

更改连接字符串

<add name="NServiceBus.Persistence" connectionString="mongodb://server201.localco.test/?replicaSet=rs0" />

<add name="NServiceBus/Persistence/MongoDB" connectionString="mongodb://server201.localco.test/?replicaSet=rs0" />

或保持如上所述并将名称设置为

config
    .UsePersistence<MongoDbPersistence>()
    .SetConnectionStringName("NServiceBus.Persistence");

答案 1 :(得分:0)

Github / Nuget的最新版软件包解决了这个问题。 See bug report