Я использую StructureMap для обработки создания NHibernate's
ISessionFactory и ISession. Я определил ISessionFactory как
синглтон, так что он создается только один раз для моего веб-приложения, и я
ISession как гибрид, так что он будет открыт только один раз за
веб-запрос.
Я хочу убедиться, что в конце каждого веб-запроса я правильно
распоряжаться ISession, если он был создан для этого веб-запроса. Я догадался
Я мог бы поместить некоторый код в моей подпрограмме Application_EndRequest, чтобы сначала
проверьте, была ли создана ISession, и если это так, вызовите ISession.Dispose.
Мой текущий обходной путь - просто открыть ISession на
Application_BeginRequest затем избавиться от него на Application_EndRequest,
но это кажется несколько расточительным в этих статических файловых запросов
изображения и CSS-файлы и еще много чего создаст ISession без
используй это. Я знаю, что общее снижение производительности незначительно, так как
ISessions очень легкие, но это раздражает, видя все
эти сессии создаются внутри NHProf.