[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。任何提示都很受欢迎。
答案 0 :(得分:0)
解决。这不是代码或db版本的问题。有应用程序在后台运行并占用网络资源。
关闭该应用程序并重新运行测试。测试顺利。