2015-10-06 6 views
0

Вот полный программный код: (За исключением класса Follower, который является только идентификатором и именем пользователя - классом класса Json) У меня нет пользователей для db - только что создано простая коллекцияMongoDB C# 2.0.1 driver-connection неожиданно закрывается

class Program 
{ 
    static void Main(string[] args) 
    { 
     DBClass db = new DBClass(); 
     db.check(); 
    } 
} 

class DBClass 
{ 
    protected string connectionString ="mongodb://localhost:27017"; 
    protected IMongoClient _client; 
    protected IMongoDatabase _database; 
    protected IMongoCollection<Follower> collection; 

    public DBClass() 
    { 
     _client = new MongoClient(connectionString); 
     _database = _client.GetDatabase("FollowedUsers"); 
     collection = _database.GetCollection<Follower>("UserData"); 
    } 

    public async void check() 
     { 
     var filter = Builders<Follower>.Filter.Eq("id", "266663861"); 
     var result = await collection.Find(filter).CountAsync(); 
     Console.WriteLine(result); 
     Console.ReadLine(); 
    } 

} 

}

Это то, что я вижу в mongod:

2015-10-06T12:08:24.119+0300 I NETWORK [initandlisten] connection 
accepted from 127.0.0.1:50069 #2 (1 connection now open) 
2015-10-06T12:08:24.243+0300 I NETWORK [conn2] end connection 
27.0.0.1:50069 (0 connections now open) 

, когда я запускаю его из VS это просто заканчивается, м строк нет исключений, это то, что я вижу в выводе. Программа '[11724] MongoTest.vshost.exe' вышла с кодом 0 (0x0). Когда я его отладки я вижу, что она заканчивается на этой линии:

var result = await collection.Find(filter).CountAsync(); 

настроить неправильно ли чего-л?

+0

1. Измените проверку, чтобы вернуть задачу ... async Проверка задачи(). 2. От Main, do db.check(). GetAwaiter(). GetResult(); –

+0

@CraigWilson он терпит неудачу после таймаута. Что это значит? –

+0

Это, вероятно, означает, что он не может разговаривать с сервером, но у меня нет никаких стеков или исключений, чтобы сказать вам наверняка. –

ответ

0

Ваша проблема не связана с MongoDB. Причина проблемы - основной поток закрывает соединение mongoDb, пока выполняется dbCheck.

Вы должны изменить следующие строки:
1)

общественного асинхронной задач проверки()

2)

db.check(). Wait();

Смежные вопросы