У меня есть приложение ASP.NET MVC 3 с удаленной базой данных MS SQL Server 2008, подключенной через Fluent NHibernate.У меня есть другое приложение, которое делает различные запросы GET к URL, который вызывает добавление нового элемента в базу данных.Каждый раз при добавлении элемента память моего локального веб-сервера увеличивается примерно на 100 тыс.
public ActionResult AddItem(string text)
{
using (var DatabaseSession = new FluentDatabase().Session)
using (var tx = DatabaseSession.BeginTransaction())
{
Item item = DatabaseSession
.QueryOver<Item>()
.Where(x => x.Text == text)
.SingleOrDefault();
if (item == null)
item = new ... // initialize
item.Text = text;
DatabaseSession.SaveOrUpdate(item);
tx.Commit();
DatabaseSession.Flush();
}
return RedirectToAction("Index");
}
Я знаю, что это не идеальный способ добавления элементов в базу данных, но это всего лишь проверкадругой функционал.После 1000 вызовов этого метода сервер получает более 1 ГБ данных!Вскоре после этого у меня заканчивается память, и она вылетает.Это не имеет особого смысла, так как все предметы должны собираться мусором.Я что-то упускаю здесь?