저는 MongoDB와 NoSQL에 대해 매우 익숙합니다. MongoDB/Norm/ASP.NET MVC 3으로 사이트를 구축하기 시작했습니다.언제 MongoDB 연결을 열고 닫아야합니까?
Mongo 데이터베이스에 연결 범위를 지정해야하는 지 궁금합니다. .
바로 지금 내가 MongoSession을 instanciases하고 onActionExecuted 내가 그것을 파기 그래서 내 모든 파생 컨트롤러는 내 MongoSession에 액세스 할 수 있습니다 Basecontroller있다. MongoSession 클래스는 생성자에서 연결을 열고 오늘 작동하는 방식 인 Dispose()에 처리 클래스를 배치합니다.
private IMongo _mongo;
public MongoSession()
{
_mongo = Mongo.Create("connString");
}
public void Dispose()
{
_mongo.Dispose();
}
컨트롤러에서 다른 작업을하고있는 경우 연결이 너무 길어질 수 있습니다.
너무 많은 연결을 열어 두는 것을 위험에 빠뜨리지 않는 접근 방법입니까, 아니면 아래의 예제 방법과 비슷한 것을해야합니까?
public void Add<T>(T item) where T : class, new()
{
using (var mongo = Mongo.Create("connString"))
{
mongo.GetCollection<T>().Insert(item);
}
}
또 다른
후속 질문은 : 개방과 규범을 통해 MongoDB의 연결을 닫는"비싼"작업?
놈은 거의, 더 이상 유지되지되고있다. –
코드에서 연결을 열고 닫는이 질문 옆에 인터넷 연결 공급자 연결에 문제가있어서 EndOfStreamException이있는 코드가 있습니다. settings.MaxConnectionIdleTime = TimeSpan.FromSeconds (30);를 사용하여 문제를 해결했습니다. https://stackoverflow.com/a/44606284/194717 – Tony