【发布时间】:2015-10-24 00:19:51
【问题描述】:
我们最近将 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)] - 无法使用以下方式联系 Mongo:server201.localco.test:27017。 如果您使用的是副本集,请确保所有 Mongo 实例 server201.localco.test:27017 都可用。 要将 NServiceBus 配置为使用不同的连接字符串,请在配置文件中添加一个名为“NServiceBus/Persistence”的连接字符串。 原因:System.InvalidOperationException:没有当前主节点。 在 MongoDB.Driver.MongoServer.Ping() 在 NServiceBus.MongoDB.Internals.MongoHelpers.VerifyConnectionToMongoServer(MongoClientAccessor mongoClientAccessor) 在 d:\Development\NServiceBus.MongoDB\src\NServiceBus.MongoDB\Internals\MongoHelpers.cs:line 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 中创建的......
【问题讨论】:
-
检查您的程序集扫描
-
你能说得更具体点吗?这是我们总共拥有的当前配置语句:
public void Customize(BusConfiguration configuration) { configuration.AssembliesToScan(AppDomain.CurrentDomain.GetAssemblies()); configuration.UseTransport<RabbitMQTransport>(); configuration.UsePersistence<MongoDBPersistence>(); } -
对不起,我误读了您上面的评论(回滚工作正常)
标签: mongodb nservicebus