2014-12-03 50 views
0

在此尋找幫助。MongoDB EC2 C#上傳問題 - 密鑰丟失?

我目前正在建設一個C#接口,最好應上傳JSON文檔轉換成存儲在EC2服務器上MongoDB數據庫。

到目前爲止,我已經能夠訪問使用膩子EC2服務器,並將所得控制檯線路接口上蒙戈的實例,但我無法做到這一點在C#。每次我已經得到了同樣的錯誤:

Additional information: Unable to connect to server [email protected]:22: A non-recoverable error occurred during a database lookup. 

我使用的代碼如下(用戶名,密碼和數據庫修改隱私名):

  // Create a metadataObj for upload. 
      MetadataTemplate metaUpload = createMetadataObj(); 

      // Upload to MongoDB 
      var connectionString = "mongodb://USERNAME:[email protected]@ec2-54-174-43-69.compute-1.amazonaws.com:22/DATABASE"; 
      var mongoEC2 = new MongoClient(connectionString); 
      var server = mongoEC2.GetServer(); 
      var database = server.GetDatabase("DATABASE"); 
      var collection = database.GetCollection<MetadataTemplate>("COLLECTION"); 

      // Insert record into DB 
      collection.Insert(metaUpload); 

,如果有什麼我想知道缺少的是我沒有包含我在PuTTY中使用的AWS Private Key(ppk)。如果是這樣的話,任何人都可以指出我如何將它包含在Mongo連接中?截至目前,MongoClient(connectionString)是我與Mongo或EC2唯一的連接形式。 EC2實例是否有必要的初步連接?

話又說回來,我承認......我可完全別的失去了一些東西。所有的建議歡迎。

更新:

下面是我用來創建SSH窗口的代碼。

  // Create a metadataObj for upload. 
      MetadataTemplate metaUpload = createMetadataObj(); 

      // Create Secure SSH Connection 
      var keyFile = new PrivateKeyFile(@"C:\Users\ahaque89\Documents\AmazonUploader\Resources\MYOPENKEY.ppk"); 
      var keyFiles = new[] { keyFile }; 
      var username = "bitnami"; 
      var methods = new List<AuthenticationMethod>(); 
      methods.Add(new PrivateKeyAuthenticationMethod(username, keyFiles)); 
      var con = new ConnectionInfo(@"ec2-54-174-43-69.compute-1.amazonaws.com", 22, username, methods.ToArray()); 

      // Connect through SSH Client 
      using (var client = new SshClient(con)) 
      { 
       client.Connect(); 
       var cmd = client.RunCommand("ls"); 
       var output = cmd.Result; 
       MessageBox.Show(output.ToString()); // Works successfully 

       // Upload to MongoDB (ec2 server) 
       var connectionString = "mongodb://USERNAME:[email protected]@ec2-54-174-43-69.compute-1.amazonaws.com:22"; 
       var mongoEC2 = new MongoClient(connectionString); 
       var server = mongoEC2.GetServer(); 
       var database = server.GetDatabase("DATABASE"); 
       var collection = database.GetCollection<MetadataTemplate>("COLLECTION"); 

       // Insert Record into DB 
       collection.Insert(metaUpload); // Creates error 
      } 
+0

作爲進一步的測試,我運行相同的代碼與connectionString本地主機數據庫和插入已成功完成。所以我知道這一定是服務器連接問題。 – 2014-12-03 05:52:22

+0

作爲進一步的測試..我試着使用SSH.Net封裝(已確認)工作的SshClient連接的上傳代碼。 但同樣的錯誤。 – 2014-12-03 07:39:35

+0

這是正確的服務器名稱和端口嗎? [email protected]:22 – 2014-12-03 13:53:15

回答