0
[TestMethod]
public void TestLoop()
{
    var server = MongoServer.Create(
        @"mongodb://user:password@dbh74.mongolab.com:2700/XXX");

    var database = server["XXX"];

    MongoCollection<Item> sourceCollection =database.GetCollection<Item>("Item");
    var counter = 0;
    int batchSize = 200;

    List<item> batch = new List<item>();
    foreach (var item in sourceCollection.FindAll().SetBatchSize(batchSize))
    {
        counter++;
        batch.Add(item);
    }
}

这是一个简单的测试函数,用于检索集合以进行测试。它之前工作正常,但它已损坏并引发以下错误。

无法从传输连接中读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。

当光标想要获取下一批数据时抛出此错误。似乎连接已断开,因此我修改了代码以解决强制重新连接的问题。

[TestMethod]
public void TestLoop()
{
    var server = MongoServer.Create(
        @"mongodb://user:password@dbh74.mongolab.com:2700/XXX");

    var database = server["XXX"];

    MongoCollection<Item> sourceCollection =database.GetCollection<Item>("Item");
    var counter = 0;
    int batchSize = 200;

    List<item> batch = new List<item>();
    foreach (var item in sourceCollection.FindAll().SetBatchSize(batchSize))
    {
        //serverX.Reconnect();
        counter++;
        if (counter% batchSize == 0)
        {
           server.Reconnect();
        }

        batch.Add(item);
    }
}

我想知道我的原始代码有什么问题。唯一不同的是我的 mongodb 托管 mongolab 刚刚将其版本提升到 2.0.2。任何提示都值得赞赏。

4

1 回答 1

0

解决。这不是代码或数据库版本的问题。有应用程序在后台运行并消耗网络资源。

关闭该应用程序并重新运行测试后。测试顺利。

于 2012-02-04T20:59:45.447 回答