Использование C# для подключения к MongoDB на сервере DigitalOcean

Недавно я настроил цифровой океанский сервер и установил на него монго. Я создал открытый и закрытый ключи ssh, чтобы иметь возможность войти в систему, но я не думаю, что мне действительно нужно использовать ssh или учетные данные для самого сервера, а не только IP-адрес моего сервера и учетные данные сервера Mongo.

  1. Можно ли это проверить как правильное?

2.Кроме того, я получаю сообщение об ошибке при попытке подключения. Я вызываю Mongo() для подключения.

В ошибке говорится, что в MongoDB.Driver.Core.dll произошло исключение типа «System.ArgumentException», но оно не было обработано в пользовательском коде.

Дополнительная информация: «mongodb://MongoUserName:[email protected]: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;
    }


}

person Mitchell McLaughlin    schedule 19.10.2017    source источник


Ответы (1)


Конструктор MongoServerAddress принимает не полную строку подключения, а только сервер и порт, например:

new MongoServerAddress(server, port)

С другой стороны, MongoClient может анализировать всю строку подключения, поэтому достаточно сказать:

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