2014-09-10 4 views
0

Я использую этот код:Cant подключения к replicaset .net драйвер - MongoDB

Dim client = New MongoClient(ConnectionStringText) 
mongo = client.GetServer() 

В vb.net, я использовал драйвер 1,7 Монго для .net и обновлен до последней, чтобы убедиться, что его не версия выпуск.

Когда я использую строку набора соединения реплики:

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 

Код хорошо работает

Кроме того - я использовал питон, чтобы убедиться, что моя реплика набор работает с одной и той же строкой соединения, которые не работают здесь, и там он работал хорошо

Я также попытался с этими вариантами:

/?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, это работает ...)

идеи?

EDIT:

Я думаю, что это может быть тот же вопрос:

https://jira.mongodb.org/browse/CSHARP-826

я также попытался понизить до 1.8.3 водителя и не увенчались успехом.

ответ

0

Ok так я нашел проблему:

серверов были запущены на Windows Azure (убунт 14) и IP-адрес, как определен в rs.status() был внутренний IP-адреса,

Для по какой-то причине драйвер .net не работал хорошо (не могу понять, как работает python), но при изменении IP-адресов на публичные он работал,

Я изменил его следующим образом:

$conf = rs.conf() 
$conf.members[0].host = "my_public_address:27017" 
rs.reconfig($conf) 

Used this article as a guideline - MONGODB: TROUBLESHOOTING “UNABLE TO CONNECT TO A MEMBER OF THE REPLICA SET MATCHING THE READ PREFERENCE PRIMARY”