【问题标题】:Connect to MongoDB from .Net application with SSH使用 SSH 从 .Net 应用程序连接到 MongoDB
【发布时间】:2017-01-18 04:53:21
【问题描述】:

我连接了 shh 隧道和 ForwardedPortLocal 但 mongo 客户端没有连接。 这是我的期望“附加信息:无法连接到服务器 localhost:27000:数据库 'db_name' 的凭据无效..”

var keyFile = new PrivateKeyFile(@"C:\Users\Desktop\mms_key.pem"); var username = "mms-user";

        using (var client = new SshClient("dpmongo-0.sample.2121.mongodbdns.com",22, username, keyFile))
        {
            client.Connect();
            var port = new ForwardedPortLocal("127.0.0.1", 27000, "localhost", 27000);
            client.AddForwardedPort(port);
            port.Start();

            var credentials = MongoCredential.CreateMongoCRCredential("db_name", "user_name", "password");

            MongoClientSettings settings = new MongoClientSettings();
            settings.Server = new MongoServerAddress("localhost", 27000);
            settings.Credentials = new[] { credentials };

            var mongoEC2 = new MongoClient(settings);
            var server = mongoEC2.GetServer();

            var database = server.GetDatabase("db_name");
            var collection = database.GetCollection<BsonDocument>("tag");
            var query = Query.EQ("linkid", 2258021);
            var userFound = collection.FindOne(query);

            client.Disconnect();
        }

【问题讨论】:

  • 仔细查看您的代码 - 您将“db_name”和“user_name”字符串传递给凭证创建,而不是您的变量。
  • 您还有什么建议吗?
  • 是的,传入变量而不是字符串。

标签: c# mongodb ssh


【解决方案1】:
             string clientserver = "localhost";
             string _port = "27000";
             string mongo_username = "user_name";
             string mongo_password = "password";
             string databaseName = "db_name";
             var connectionString = "mongodb://"
                                                 + mongo_username + ":" + mongo_password + "@"
                                                 + clientserver + ":" + _port + "/"
                                                 + databaseName;
             var server = new MongoClient(connectionString).GetServer();   

            //I tried this and it gave the same error on c#. This information was linked to my experiment on MongoCfee tools.

【讨论】:

    猜你喜欢
    • 2018-09-29
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    相关资源
    最近更新 更多