J'ai une application ASP.NET MVC qui crée une datacontext Linq2SQL sur une base de demande par Internet en utilisant Castler Windsor IoC.Linq à un problème de fuite de mémoire SQL DataContext Windsor IoC
Pour une raison que je ne comprends pas complètement, chaque fois qu'un nouveau datacontext est créé (sur chaque requête web), environ 8k de mémoire sont repris et non libérés - ce qui provoque inévitablement une exception OutOfMemory.
Si je force la collecte des ordures la mémoire est libérée OK.
Ma classe DataContext est très simple:
public class DataContextAccessor : IDataContextAccessor
{
private readonly DataContext dataContext;
public DataContextAccessor(string connectionString)
{
dataContext = new DataContext(connectionString);
}
public DataContext DataContext { get { return dataContext; } }
}
Le Windsor IoC webconfig à instancier cela ressemble à ceci:
<component id="DataContextAccessor"
service="DomainModel.Repositories.IDataContextAccessor, DomainModel"
type="DomainModel.Repositories.DataContextAccessor, DomainModel"
lifestyle="PerWebRequest">
<parameters>
<connectionString>
...
</connectionString>
</parameters>
</component>
Est-ce que quelqu'un sait quel est le problème et comment le résoudre?
Voir: http://stackoverflow.com/questions/85183/windsor-container-how-to-force-dispose-of-an-object http://stackoverflow.com/questions/132940/why-does- castle-windsor-hold-on-transitoire-objets –