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

标签 .net rest mongodb connection-string

我无法理解为什么我无法连接到我在 MongoHQ 创建的新数据库。

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

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

Public Access

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

AWS Internal Access

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

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

我的代码是:

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

mongo.Connect();

但是,当我尝试实例化那个 Mongo 对象时,我得到一个格式异常提示

Invalid connection string on:

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

编辑:

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

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

最佳答案

MongoDB 的连接字符串被格式化为 URI,详情 can be found here .以下是基本格式和一些示例:

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); 

关于.net - 从 ASP.NET 连接到远程 MongoDB 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3091946/

相关文章:

c# - 创建谷歌图表并转换为图像服务器端

java - 带有 Retrofit 的 POST/PUT 参数的默认/常量值

java - 动态 json 响应 : Could not read JSON: N/A (through reference chain) jackson fasterxml

node.js - 从另一个 docker 容器连接到 Mongodb docker 容器

c# - PInvoke 和 double*

.net - NAT 后的 FTPWebRequest(PASV,SSL)

java - Spring:使用 ResponseEntity<Void> 返回空的 HTTP 响应不起作用

MongoDB:映射集合中的关系

node.js - 无法连接到数据库MongoParseError : Unescaped at-sign in authority section

c# - .Net DefaultValueAttribute 属性