Vinny,
Ich habe Ninject noch nie verwendet, daher könnte ich mit diesem Vorschlag weit daneben liegen. Aber es scheint möglich, dass eine statische MongoSession-Instanz Verbindungen offen hält. Haben Sie TransientBehavior anstelle von SingletonBehavior ausprobiert? Oder ändern Sie vielleicht Ihren Code so, dass er Dispose (oder use using) aufruft, nachdem Sie Ihre ShortcutLinks in eine Liste konvertiert haben? Alle
var shortcutLionks = _session.All<ShortcutLinks>().ToList();
_session.Dispose();
Ein besserer Ansatz könnte darin bestehen, eine Art Repository oder DAO zu verwenden, bei dem die Sitzungsdetails vor dem Controller verborgen sind. Ich habe ein RepositoryBase-Beispiel unter http:/ /www.codevoyeur.com/Articles/20/A-NoRM-MongoDB-Repository-Base-Class.aspx .
Stuart Harris hat eine ähnliche, wohl vollständigere Implementierung unter http://red-badger.com/Blog/post/A-simple-IRepository3cT3e-implementation-for-MongoDB-and-NoRM.aspx
Gepoolte MongoDB-Verbindungen sind relativ kostengünstig zu erstellen, daher ist es wahrscheinlich am besten, sicherzustellen, dass die Datenzugriffsmethoden gelöscht werden, nachdem Sie mit dem Abrufen/Speichern von Daten fertig sind.