Castler Windsor IoC를 사용하여 웹 요청별로 Linq2SQL datacontext를 만드는 ASP.NET MVC 앱이 있습니다.Linq to SQL DataContext Windsor IoC 메모리 누수 문제
내가 완전히 이해하지 못하는 몇 가지 이유 때문에 새로운 datacontext가 (모든 웹 요청에서) 생성 될 때마다 약 8KB의 메모리가 사용되지 않고 릴리스되지 않아 필연적으로 OutOfMemory 예외가 발생합니다.
강제로 가비지 수집을하면 메모리가 해제됩니다.
내 데이터 컨텍스트 클래스는 매우 간단합니다 :
<component id="DataContextAccessor"
service="DomainModel.Repositories.IDataContextAccessor, DomainModel"
type="DomainModel.Repositories.DataContextAccessor, DomainModel"
lifestyle="PerWebRequest">
<parameters>
<connectionString>
...
</connectionString>
</parameters>
</component>
사람이 문제가 무엇인지 알고 있나요, 어떻게 그것을 해결하기 위해 :
public class DataContextAccessor : IDataContextAccessor
{
private readonly DataContext dataContext;
public DataContextAccessor(string connectionString)
{
dataContext = new DataContext(connectionString);
}
public DataContext DataContext { get { return dataContext; } }
}
윈저의 IoC webconfig
이 지금과 같은 인스턴스화?
참조 : http://stackoverflow.com/questions/85183/windsor-container-how-to-force-dispose-of-an-object http://stackoverflow.com/questions/132940/why-does- 성 윈드 서스 홀드 투 트랜지언트 오브젝트 –