MongoDB/Norm/ASP.NET MVC 3でサイトを構築し始めたばかりです。MongoDB/NoSQLのサイトを構築し始めたところです。Mongoデータベースへの接続をどのようにすべきか疑問に思っています。 。MongoDB接続をいつ開く必要がありますか?
今私は、MongoSessionをinstanciaseとonActionExecuted私はすべての私のMongoSessionへのアクセスを持っている私の派生コントローラがそれを処分するBasecontrollerがあります。 MongoSessionクラスはコンストラクタで接続を開き、それがDispose()に配置されます。これは、現在動作しています。
private IMongo _mongo;
public MongoSession()
{
_mongo = Mongo.Create("connString");
}
public void Dispose()
{
_mongo.Dispose();
}
私はコントローラで他のものも同様にやっていると接続が長すぎると心配です。
あまりにも多くの接続を開いておく危険性がないか、以下の例のような方法をとっていますか?
はノーム「高価な」操作でのMongoDBの接続を開閉されています
public void Add<T>(T item) where T : class, new()
{
using (var mongo = Mongo.Create("connString"))
{
mongo.GetCollection<T>().Insert(item);
}
}
もう一つ質問があるのフォローアップ?
ノームはほとんど、もはや維持されていません。 –
コードの接続の開閉に関するこの質問のほかに、インターネットプロバイダが接続を閉じて、EndOfStreamExceptionを持つコードに問題がありました。私はsettings.MaxConnectionIdleTime = TimeSpan.FromSeconds(30)を使って解決しました。 https://stackoverflow.com/a/44606284/194717 – Tony