从ASP.NET连接到远程MongoDB实例

Phi*_*ler 4 .net rest connection-string mongodb

我在解决为什么我无法连接到我在MongoHQ创建的新数据库时遇到了一些麻烦.

我想在我的Web.config文件中包含正确的连接字符串,并让我的Mongo对象引用数据库连接.

连接字符串(显然是编辑过的)是:

公共访问

mongo flame.mongohq.com:27065/dunedin -u {username} -p {password}

AWS内部访问

mongo flame.local.mongohq.com:27065/dunedin -u {username} -p {password}

显然,我已经在密码中包含了正确的用户名来代替大括号中的占位符.

我的代码是:

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

mongo.Connect();
Run Code Online (Sandbox Code Playgroud)

但是,一旦我尝试实例化那个Mongo对象,我就会得到格式异常

连接字符串无效:

对于远程托管的MongoDB实例,该连接字符串应该是什么样的?

编辑:

Web.Config中的连接字符串条目是

<add name="DBMongo" connectionString="mongo flame.mongohq.com:27065/dunedin -u ausername -p apassword"/>
Run Code Online (Sandbox Code Playgroud)

Jam*_*ite 6

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
Run Code Online (Sandbox Code Playgroud)

您还可以使用MongoUrlBuilder和MongoUrl来构造或解析连接字符串programatticaly.虽然有点罗嗦,但我相信推荐用法是这样的

var mongoUrl = new MongoUrl(settings.ConnectionString);
var mongoClient = new MongoClient(mongoUrl);
var mongoServer = mongoClient.GetServer();
var mongoDatabase = mongoServer.GetDatabase(mongoUrl.DatabaseName); 
Run Code Online (Sandbox Code Playgroud)


mxm*_*ile 3

mongo shell, 中键入show users. 然后使用显示的哈希密码作为连接字符串中的密码。