使用SSH从.Net应用程序连接到MongoDB

时间:2017-01-17 15:36:33

标签: c# mongodb ssh

我连接了shh tunnel和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();
        }

1 个答案:

答案 0 :(得分: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.