У меня есть приложение ASP.NET MVC, которое создает Linq2SQL datacontext для каждого веб-запроса с использованием Castler Windsor IoC.Linq to SQL DataContext Windsor IOC проблема с утечкой памяти
По какой-то причине я не полностью понимаю, каждый раз, когда создается новый datacontext (на каждом веб-запросе), около 8 тыс. Памяти занято и не выпущено, что неизбежно вызывает исключение OutOfMemory.
Если я заставляю сбор мусора, память отпускается ОК.
Мой класс DataContext очень прост:
public class DataContextAccessor : IDataContextAccessor
{
private readonly DataContext dataContext;
public DataContextAccessor(string connectionString)
{
dataContext = new DataContext(connectionString);
}
public DataContext DataContext { get { return dataContext; } }
}
Виндзор IoC WebConfig инстанцировать это выглядит так:
<component id="DataContextAccessor"
service="DomainModel.Repositories.IDataContextAccessor, DomainModel"
type="DomainModel.Repositories.DataContextAccessor, DomainModel"
lifestyle="PerWebRequest">
<parameters>
<connectionString>
...
</connectionString>
</parameters>
</component>
Кто-нибудь знает, в чем проблема, и как это исправить?
См. Http://stackoverflow.com/questions/85183/windsor-container-how-to-force-dispose-of-an-object http://stackoverflow.com/questions/132940/why-does- замок-Виндзорский-держать-на-переходными-объектов –