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
}
作爲進一步的測試,我運行相同的代碼與connectionString本地主機數據庫和插入已成功完成。所以我知道這一定是服務器連接問題。 – 2014-12-03 05:52:22
作爲進一步的測試..我試着使用SSH.Net封裝(已確認)工作的SshClient連接的上傳代碼。 但同樣的錯誤。 – 2014-12-03 07:39:35
這是正確的服務器名稱和端口嗎? [email protected]:22 – 2014-12-03 13:53:15