【发布时间】: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”字符串传递给凭证创建,而不是您的变量。
-
您还有什么建议吗?
-
是的,传入变量而不是字符串。