Подключиться к удаленному экземпляру MongoDB из ASP.NET - PullRequest
4 голосов
/ 22 июня 2010

У меня возникают проблемы с выяснением причин, по которым я не могу подключиться к новой базе данных, созданной в MongoHQ.

Я хочу включить правильную строку подключения в мой файл Web.config имой объект Mongo ссылается на объект подключения к базе данных.

Строки подключения (очевидно, отредактированные):

Публичный доступ

mongo flame.mongohq.com: 27065 / dunedin -u {имя пользователя} -p {пароль}

Внутренний доступ AWS

mongo flame.local.mongohq.com:27065/dunedin -u {имя пользователя} -p {пароль}

Очевидно, я включил мое правильное имя пользователя в пароль вместо заполнителей в фигурных скобках.

Мой код:

string connection = ConfigurationManager.ConnectionStrings["DBMongo"].ConnectionString;
var mongo = new Mongo(connection);

mongo.Connect();

Однако, как только я пытаюсь создать экземпляр этого объекта Mongo, я получаю исключение формата:

Недопустимая строка подключения:

Как должна выглядеть эта строка подключениянапример, для удаленно размещенных экземпляров MongoDB?

EDIT:

Запись строки подключения в Web.Config:

<add name="DBMongo" connectionString="mongo flame.mongohq.com:27065/dunedin -u ausername -p apassword"/>

Ответы [ 4 ]

6 голосов
/ 18 ноября 2013

Строка подключения для MongoDB отформатирована как URI, подробности можно найти здесь . Ниже приведен базовый формат и несколько примеров:

mongodb://[username:password@]host1[:port1][/[database][?options]]

mongodb://127.0.0.1 

mongodb://127.0.0.1/mydatabase

mongodb://mongosrv.com:10230/mydatabase

mongodb://myadmin:secretpass@mongosrv.com:10230/mydatabase

// Or in your case it would be 

mongodb://ausername:apassword@flame.mongohq.com:27065/dunedin

Вы также можете использовать MongoUrlBuilder и MongoUrl для конструирования или синтаксического анализа строки соединения. Хотя и немного многословно, я считаю, что рекомендуемое использование выглядит следующим образом

var mongoUrl = new MongoUrl(settings.ConnectionString);
var mongoClient = new MongoClient(mongoUrl);
var mongoServer = mongoClient.GetServer();
var mongoDatabase = mongoServer.GetDatabase(mongoUrl.DatabaseName); 
3 голосов
/ 23 июня 2010

В mongo shell введите show users.Затем используйте хешированный пароль, который отображается для вашего пароля в строке подключения.

1 голос
/ 23 июня 2010

Вы явно используете mongodb-csharp. То, что вы используете наиболее определенно, не является допустимой строкой соединения. Вы можете задать свой вопрос в группе http://groups.google.com/group/mongodb-csharp или посмотреть документы и код здесь. Существует даже построитель строки подключения, поэтому вам не нужно знать точный синтаксис.

0 голосов
/ 22 июня 2010

Как выглядит ваша строка подключения, помещенная в Web.config?Исключение, которое вы получаете, указывает на то, что оно недействительно.Уточнить это с помощью документации MongoDB.

...