Vinny,
Ik heb Ninject nog nooit gebruikt, dus ik kan er helemaal naast zitten met deze suggestie. Maar het lijkt mogelijk dat het hebben van een statische MongoSession-instantie verbindingen openhoudt. Heb je TransientBehavior geprobeerd in plaats van SingletonBehavior? Of misschien uw code wijzigen om Dispose te noemen (of gebruiken) nadat u uw ShortcutLinks naar een lijst hebt omgezet? Alle
var shortcutLionks = _session.All<ShortcutLinks>().ToList();
_session.Dispose();
Een betere benadering zou kunnen zijn om een soort repository of DAO te gebruiken waar de sessiedetails verborgen zijn voor de controller. Ik heb een RepositoryBase-voorbeeld op http:/ /www.codevoyeur.com/Articles/20/A-NoRM-MongoDB-Repository-Base-Class.aspx .
Stuart Harris heeft een vergelijkbare, aantoonbaar completere implementatie op http://red-badger.com/Blog/post/A-simple-IRepository3cT3e-implementation-for-MongoDB-and-NoRM.aspx
Gepoolde MongoDB-verbindingen zijn relatief goedkoop om te maken, dus het is waarschijnlijk het beste om ervoor te zorgen dat de methoden voor gegevenstoegang worden verwijderd nadat u klaar bent met het ophalen/opslaan van gegevens.