5

I'm having some trouble nutting out why I'm unable to connect to a new database I've created at MongoHQ.

I want to include the correct connection string in my Web.config file and have my Mongo object refer to that for the database connection.

The connection strings (edited, obviously) are:

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}

Obviously, I've included my correct username in password in place of the placeholders in the braces.

My code is:

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

mongo.Connect();

However, as soon as I try to instantiate that Mongo object, I get a format exception saying

Invalid connection string on:

What is that connection string supposed to look like for remotely-hosted MongoDB instances?

EDIT:

The Connection String entry in Web.Config is

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

4 Answers 4

6

The connection string for MongoDB is formatted as a URI, details can be found here. Below is the basic format and some examples:

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:[email protected]:10230/mydatabase

// Or in your case it would be 

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

You can also use MongoUrlBuilder and MongoUrl to construct or parse the connection string programatticaly. Though a bit wordy, I believe the recommended usage goes like this

var mongoUrl = new MongoUrl(settings.ConnectionString);
var mongoClient = new MongoClient(mongoUrl);
var mongoServer = mongoClient.GetServer();
var mongoDatabase = mongoServer.GetDatabase(mongoUrl.DatabaseName); 
Sign up to request clarification or add additional context in comments.

Comments

3

In the mongo shell, type show users. Then use the hashed password this displays for your password in the connection string.

Comments

1

You are obviously using mongodb-csharp. What you are using most definately is not a valid connection string. You can ask your question at the group http://groups.google.com/group/mongodb-csharp or look at the docs and code here. There is even a connection string builder so you don't need to know the exact syntax.

1 Comment

Couldn't find the connection string builder, but that site had the information I needed. Thanks for the pointer.
0

How does your connection string placed in Web.config look like? Exception you get indicates that it's invalid. Clarify it using MongoDB documentation.

2 Comments

The documentation on the Mongo site (that I've found) hasn't been that helpful for remote connections. It's primarily centred around working from the command line.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.