[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. Любые намеки приветствуются.