2010-06-22 82 views
4

我有一些麻烦扼杀了为什么我无法连接到我在MongoHQ中创建的新数据库。连接到来自ASP.NET的远程MongoDB实例

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

连接字符串(编辑,很明显)是:

公共访问

蒙戈flame.mongohq.com:27065/dunedin -u {用户名} {-p密码}

AWS内部访问

蒙戈flame.local.mongohq.com:27065/dunedin -u {用户名} {-p密码}

很显然,我在密码中包含了正确的用户名,而不是括号中的占位符。

我的代码是:

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

mongo.Connect(); 

然而,当我尝试实例化蒙戈对象,我得到一个格式异常话说

无效的连接字符串:

该连接字符串应该看起来像是远程托管的MongoDB实例吗?

编辑:

web.config中的连接字符串项是

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

回答

3

mongo shell中输入show users。然后使用在连接字符串中显示密码的散列密码。

0

如何放置在Web.config文件的连接字符串是什么样子?你得到的例外表明它是无效的。使用MongoDB文档说明它。

+0

Mongo站点上的文档(我发现)对远程连接没有帮助。它主要围绕着从命令行开始工作。 – 2010-06-22 10:21:22

+0

@ Phil.Wheele:我发现这个:http://www.captaincodeman.com/2010/05/24/mongodb-azure-clouddrive/它导致http://github.com/samus/mongodb-csharp – abatishchev 2010-06-22 10:35:36

1

你显然正在使用mongodb-csharp。你最明确使用的是不是有效的连接字符串。您可以在http://groups.google.com/group/mongodb-csharp组询问您的问题,或者查看文档和代码。甚至有一个连接字符串生成器,所以你不需要知道确切的语法。

+0

Couldn找不到连接字符串生成器,但该网站有我需要的信息。感谢指针。 – 2010-06-23 09:35:10

5

MongoDB的连接字符串格式化为URI,详细信息can be found here。以下是基本格式和一些例子:

mongodb://[username:[email protected]]host1[:port1][/[database][?options]] 

mongodb://127.0.0.1 

mongodb://127.0.0.1/mydatabase 

mongodb://mongosrv.com:10230/mydatabase 

mongodb://myadmin:[email protected]:10230/mydatabase 

// Or in your case it would be 

mongodb://ausername:[email protected]:27065/dunedin 

您还可以使用MongoUrlBuilder和MongoUrl构建或programatticaly解析连接字符串。尽管有点罗嗦,但我相信推荐的使用方式是这样的

var mongoUrl = new MongoUrl(settings.ConnectionString); 
var mongoClient = new MongoClient(mongoUrl); 
var mongoServer = mongoClient.GetServer(); 
var mongoDatabase = mongoServer.GetDatabase(mongoUrl.DatabaseName); 
相关问题