我正在使用这段代码:
Dim client = New MongoClient(ConnectionStringText)
mongo = client.GetServer()
在 vb.net 中,我使用 .net 的 1.7 mongo 驱动程序并更新到最新版本以确保它不是版本问题。
当我使用副本集连接字符串时:
mongodb://[myserver1]:27017,[myserver2]:27017,[myserver3]:27017/?replicaSet=myRepName
我收到以下错误:
Unable to connect to a member of the replica set matching the read preference Primary: The requested name is valid, but no data of the requested type was found
如果您像这样连接(仅连接到一台服务器):
mongodb://[myserver1]:27017
代码运行良好
另外 - 我使用 python 来验证我的副本集正在使用相同的连接字符串,但它在这里和那里都不起作用
我也尝试了这些选项:
/?connect=replicaset&replicaset=myRsName&readPreference=SecondaryPreferred
我也尝试使用以下代码执行此操作:
Dim servers As List(Of MongoServerAddress) = New List(Of MongoServerAddress)()
servers.Add(New MongoServerAddress(myserver1IP, 27017))
servers.Add(New MongoServerAddress(myserver2IP, 27017))
servers.Add(New MongoServerAddress("myserver3IP, 27017))
Dim settingsNew = New MongoClientSettings()
settingsNew.ConnectionMode = ConnectionMode.ReplicaSet
settingsNew.ReplicaSetName = "myRepName"
settingsNew.ReadPreference = New ReadPreference(ReadPreferenceMode.PrimaryPreferred)
settingsNew.Servers = servers.ToArray()
Dim client = New MongoClient(settingsNew)
并得到这个错误:
Unable to connect to a member of the replica set matching the read preference Primary
当登录到服务器(ssh)并使用 rs.status() 命令时,我得到了预期的结果,一切似乎都运行良好(正如我在 python 驱动程序中提到的那样......)
有任何想法吗 ?
编辑:
我认为这可能是同一个问题:
我还尝试降级到 1.8.3 驱动程序,但没有成功。