我们最近将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中创建的......
答案 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