У меня есть приложение ASP.NET MVC, которое создает текст данных Linq2SQL для каждого веб-запроса с использованием Castler Windsor IoC.
По какой-то причине, которую я не полностью понимаю, каждый раз, когда создается новый текст данных (при каждом веб-запросе), около 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; } }
}
Веб-конфигурация Windsor IoC для создания этого экземпляра выглядит так:
<component id="DataContextAccessor"
service="DomainModel.Repositories.IDataContextAccessor, DomainModel"
type="DomainModel.Repositories.DataContextAccessor, DomainModel"
lifestyle="PerWebRequest">
<parameters>
<connectionString>
...
</connectionString>
</parameters>
</component>
Кто-нибудь знает, в чем проблема, и как ее исправить?