代码之家  ›  专栏  ›  技术社区  ›  Phil.Wheeler

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

  •  4
  • Phil.Wheeler  · 技术社区  · 15 年前

    我很难解释为什么我无法连接到我在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对象时,我得到一个格式异常,它说

    Invalid connection string on:

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

    编辑:

    web.config中的连接字符串条目为

    <add name="DBMongo" connectionString="mongo flame.mongohq.com:27065/dunedin -u ausername -p apassword"/>
    
    4 回复  |  直到 11 年前
        1
  •  3
  •   mxmissile    15 年前

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

        2
  •  6
  •   James White    11 年前

    MongoDB的连接字符串格式为uri,details 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来构造或分析连接字符串programmaticaly。虽然有点冗长,但我相信推荐的用法是这样的

    var mongoUrl = new MongoUrl(settings.ConnectionString);
    var mongoClient = new MongoClient(mongoUrl);
    var mongoServer = mongoClient.GetServer();
    var mongoDatabase = mongoServer.GetDatabase(mongoUrl.DatabaseName); 
    
        3
  •  1
  •   Craig Wilson    15 年前

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

        4
  •  0
  •   abatishchev Karl Johan    15 年前

    web.config中的连接字符串是什么样子的?您得到的异常表明它是无效的。使用MongoDB文档对其进行澄清。