我有一個ASP.NET MVC應用程序,它使用Castler Windsor IoC在每個Web請求的基礎上創建一個Linq2SQL datacontext。Linq to SQL DataContext Windsor IoC內存泄漏問題
由於某些原因,我不完全理解,每次創建新的數據上下文(在每個Web請求上)大約8K內存被佔用並且未釋放 - 這不可避免地導致OutOfMemory異常。
如果我強制垃圾收集內存釋放OK。
我DataContext類是非常簡單的:
public class DataContextAccessor : IDataContextAccessor
{
private readonly DataContext dataContext;
public DataContextAccessor(string connectionString)
{
dataContext = new DataContext(connectionString);
}
public DataContext DataContext { get { return dataContext; } }
}
溫莎國際奧委會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-城堡溫莎舉行,在瞬態對象 – 2009-11-11 00:40:27