sql >> Base de Datos >  >> NoSQL >> MongoDB

Norm.MongoException:tiempo de espera de conexión al intentar obtener conexión del grupo de conexiones

Vinny,

Nunca he usado Ninject, por lo que podría estar equivocado con esta sugerencia. Pero parece posible que tener una instancia estática de MongoSession pueda mantener abiertas las conexiones. ¿Has probado TransientBehavior en lugar de SingletonBehavior? ¿O tal vez cambiar su código para llamar a Dispose (o usar usando) después de convertir sus ShortcutLinks en una lista? Todo

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

Un mejor enfoque podría ser usar algún tipo de repositorio o DAO donde los detalles de la sesión estén ocultos para el controlador. Tengo una muestra de RepositoryBase en http:/ /www.codevoyeur.com/Articles/20/A-NoRM-MongoDB-Repository-Base-Class.aspx .

Stuart Harris tiene una implementación similar, posiblemente más completa, en http://red-badger.com/Blog/post/A-simple-IRepository3cT3e-implementation-for-MongoDB-and-NoRM.aspx

Las conexiones agrupadas de MongoDB son relativamente baratas de crear, por lo que probablemente sea mejor asegurarse de que los métodos de acceso a los datos se eliminen después de que haya terminado de obtener/guardar datos.