Мне нужно настроить управление сессиями в MVC.Как правильно это сделать?Как настроить управление сессиями nhibernate в mvc, используя Structuremap, чтобы я не получал:
Сеанс закрыт или Использование одного сеанса в нескольких потоках, вероятно, ошибка.
Моя текущая конфигурация:в GlobalAssax:
protected void Application_Start()
{
ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
Bootstrapper.ConfigureStructureMap();
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
в моем BootStrapper я делаю:
var cfg = NHibernateManager.Configuration(assembly);
For<Configuration>().Singleton().Use(cfg);
For<ISessionFactory>().Singleton().Use(cfg.BuildSessionFactory());
For<ISession>().HttpContextScoped().Use(ctx => ctx.GetInstance<ISessionFactory>().OpenSession());
Я внедряю ISession в репозитории, которые я использую на прикладном уровне.
Редактировать: Что произойдет, еслиЯ делаю это ?: For (). LifecycleIs (Lifecycles.GetLifecycle (InstanceScope.PerRequest)). Использование (ctx => ctx.GetInstance (). OpenSession ());