【问题标题】:Using C# To Connect to MongoDB on DigitalOcean Server使用 C# 连接到 DigitalOcean 服务器上的 MongoDB
【发布时间】:2017-10-19 04:03:57
【问题描述】:

我最近设置了一个数字海洋服务器并在上面安装了 mongo。我已经创建了能够登录的 ssh 公钥和私钥,但我认为我实际上不需要使用 ssh 或服务器本身的凭据,而不仅仅是我的服务器的 IP 和 Mongo 服务器的凭据。

  1. 这可以验证为正确吗?

2.除此之外,我在尝试连接时遇到错误。我调用 Mongo() 进行连接。

错误说 MongoDB.Driver.Core.dll 中出现“System.ArgumentException”类型的异常,但未在用户代码中处理

附加信息:“mongodb://MongoUserName:MongoPassword@XXX.XX.XXX.XXX:27017/admin:27017”不是有效的端点。

    public static class DataSources
    {
    public static string URIString = "mongodb://"+s_Username
        +":"+s_Password+"@"+ip+":"+port+"/admin";
    public static string ip = "XXX.XX.XXX.XXX";
    public static string port = "27017";
    public static string s_Username = "MongoUsername";
    public static string s_Password = "MongoPassword";

    public static MongoCredential GetMongoCredentials()
    {
        return MongoCredential.CreateCredential("admin", s_Username, s_Password);
    }

    public static MongoClientSettings GetMongoSettings()
    {
        var settings = new MongoClientSettings
        {
            Credentials = new[] { GetMongoCredentials() },
            Server = new MongoServerAddress(URIString)
        };
        return settings;
    }
    public static MongoClient Mongo()
    {
        MongoClient mongoClient = new MongoClient(GetMongoSettings());
        return mongoClient;
    }


}

【问题讨论】:

    标签: c# mongodb ubuntu cloud digital


    【解决方案1】:

    MongoServerAddress 构造函数不采用完整的连接字符串,而只是一个服务器和一个端口,如下所示:

    new MongoServerAddress(server, port)
    

    另一方面,MongoClient 可以解析完整的连接字符串,所以这样说就足够了:

    MongoClient mongoClient = new MongoClient(URIString) and drop most of the rest of your code.
    

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 1970-01-01
      • 2017-08-02
      • 2016-12-31
      • 2017-12-13
      • 2016-09-02
      • 2019-10-14
      • 2016-03-13
      • 2016-11-30
      相关资源
      最近更新 更多