title: How to handle NHibernate sessions in an ASP.NET WebForms application?
body: <p>I see there are 2 possible scenarios as to the session handling:</p>
  
  <ol>
  <li>Open one single ISession per request. Open it at request start and close it at request end.</li>
  <li>Open one ISession per conceptual "unit of work". Many sessions are created for a request.</li>
  </ol>
  
  <p>The approach #1 is the one I'm doing now. I'm a little bit worried about it because, although it works, it's a little bit difficult to debug. For instance, I have an object not being saved (even though I ordered it to)  and I'm having trouble debugging since there's a LOT of things happening during a complete request life-cycle.</p>
  
  <p>The approach #2 seems to be the standard best-practice (not sure about ASP.NET) and I'm sure it's pretty easier to debug. The problem I see is about inter-session communication. For instance: My Page class holds a reference to the  User, which is a persistent object. Many of the operations receive the user as parameter. As the user belongs to a different session, I can't pass it as a parameter.</p>
  
  <p>I'm biased to #2, but I don't know if it's the best practice, nor how to deal with cross-session object.</p>
  
  <p>Thanks.</p>