У меня возникают утечки памяти в приложении ASP.Net MVC 3, и я подозреваю, что это может быть проблема с контейнером IoC.
MvcApplication создает объект WindsorContainer, заполняет его, а затем сохраняет в статическом поле, например:
public class MvcApplication : System.Web.HttpApplication, IContainerAccessor
{
private static WindsorContainer container;
protected void Application_Start()
{
ControllerBuilder.Current.SetControllerFactory(
new WindsorControllerFactory(container));
}
}
Правильно ли здесь удерживать контейнер в статическом поле? Насколько я понимаю, сам контейнер должен жить так же долго, как и само приложение MVCA. Если сделать его статичным, это просто разделит его между несколькими экземплярами MVCApplication, поэтому мне интересно, неправильно ли он расположен.