2017-01-17 10 views
-2

shhトンネルとForwardedPortLocalを接続しましたが、mongoクライアントは接続しません。 \ mms_keyデスクトップ\ \ユーザー:SSHの.NetアプリケーションからMongoDBに接続

するvarキーファイル=新しいPrivateKeyFile(@ "C は、ここに私のexpection ":サーバーのローカルホストに接続できません:27000データベース 'DB_NAME' ..に対して無効な資格の追加情報" です。 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

あなたのコードをよく見てください - あなたは、変数、資格創造に「DB_NAME」と「USER_NAME」の文字列を渡していません。 – betseyb

+0

別の提案がありますか? –

+0

はい、文字列の代わりに変数を渡します。 – betseyb

答えて

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. 
関連する問題