【发布时间】:2016-11-02 12:08:37
【问题描述】:
我是 MongoDB 新手,我正在尝试连接到另一个系统中的客户端服务器,但运行代码时没有任何反应。我调试了代码,发现编译器在“使用(var cursor = await collection.FindAsync(filter))”行之后没有通过。
private void btn_Click(object sender, EventArgs e)
{
CallMain().Wait();
}
static async Task CallMain()
{
var conString = "mongodb://215.658.326.54:2154";
var Client = new MongoClient(conString);
var DB = Client.GetDatabase("db_name");
var collection = DB.GetCollection<BsonDocument>("User");
var filter = new BsonDocument();
try
{
using (var cursor = await collection.FindAsync(filter))
{
while (await cursor.MoveNextAsync())
{
foreach (var doc in cursor.Current)
{
Console.WriteLine(doc);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
请为此提供解决方案或指导我连接到另一台服务器中的 mongodb 和 fetech 数据的工作代码。
【问题讨论】:
-
尝试调试你的源代码!
-
“什么都没发生”和“它没用”一样糟糕。单步执行您的代码。连接成功了吗?代码走什么路径?
-
同意@duDE。如果没有任何反应,可能您处于无限循环或类似情况。尝试逐行调试您的代码并了解它失败的地方。
-
它在行中失败,在此之后使用 (var cursor = await collection.FindAsync(filter)) 没有响应。
-
什么都没有发生是因为
CallMain()是一个异步方法,你不能像这样在你的线程中捕获异常。