繁体   English   中英

mongodb中的find()。tolistasync()超时(System.TimeoutException :)

[英]find().tolistasync() timeout (System.TimeoutException:) in mongodb

我正在尝试连接到CentOS上的虚拟机中的mongodb(已配置selinux和防火墙)。 我创建了一个名为test的数据库,其中包含一个名为test的集合以及其中的一个视图文档。 我使用C#和最新发布的驱动程序2.0.0来连接数据库。 代码看起来像这样:

using System;
using System.Dynamic;
using System.Collections.Generic;
using MongoDB.Driver;
using MongoDB.Bson;

namespace mongotest
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            MongoClientSettings settings = new MongoClientSettings ();
            settings.Server = new MongoServerAddress ("mongotest", 21017);
            MongoClient client = new MongoClient (settings);

            System.Threading.Tasks.Task<List<BsonDocument>> datasetsTask = client.GetDatabase ("test").GetCollection<BsonDocument> ("test").Find (x => true).ToListAsync();

            foreach (BsonDocument dataset in datasetsTask.Result) {
                try {
                    Console.WriteLine(dataset["_id"]);
                    try{
                        Console.WriteLine("\t" + dataset["test"]);
                    } catch(Exception e) {}
                    try{
                        Console.WriteLine("\t" + dataset["name"]);
                    } catch(Exception e) {}
                } catch(Exception e) {Console.WriteLine ("Error: no property called _id");}
            }
        }
    }
}

我用robomongo签出了数据库。 测试数据库和测试集合在那里。 在我尝试获得结果的行中(在foreach循环的开头),执行暂停30秒,然后抛出System.TimeoutException(我不得不将其发布到pastebin中,因为它太长了): http:// /pastebin.com/pp0kfgaH

我认为第58行是真正的错误。 但是我不知道这个服务器地址。

看起来好像是连接有问题。

尝试像Github页面上的“入门”示例一样建立连接:

https://github.com/mongodb/mongo-csharp-driver

另外,请记住将“ mongodb://”添加到您的连接字符串中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM