MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Norm.MongoException :Délai d'expiration de la connexion essayant d'obtenir une connexion à partir du pool de connexions

Vinny,

Je n'ai jamais utilisé Ninject, donc je pourrais être loin de cette suggestion. Mais il semble possible qu'une instance MongoSession statique maintienne les connexions ouvertes. Avez-vous essayé TransientBehavior au lieu de SingletonBehavior ? Ou peut-être changer votre code pour appeler Dispose (ou utiliser using) après avoir converti vos ShortcutLinks en List ? Tout

var shortcutLionks = _session.All<ShortcutLinks>().ToList();
_session.Dispose();

Une meilleure approche pourrait consister à utiliser une sorte de référentiel ou de DAO où les détails de la session sont cachés au contrôleur. J'ai un exemple de RepositoryBase sur http:/ /www.codevoyeur.com/Articles/20/A-NoRM-MongoDB-Repository-Base-Class.aspx .

Stuart Harris a une implémentation similaire, sans doute plus complète sur http://red-badger.com/Blog/post/A-simple-IRepository3cT3e-implementation-for-MongoDB-and-NoRM.aspx

Les connexions MongoDB groupées sont relativement peu coûteuses à créer, il est donc probablement préférable de s'assurer que les méthodes d'accès aux données sont supprimées après avoir obtenu/enregistré les données.