In our develop environment all the ASP.NET application works just fine. However, when I deploy the site on the test machine, on some pages I get this exception:
Another problem could be the user security (a database level exception again). In my case the underlying DB problem was:
The server principal "AppUser" is not able to access the database "AppDB" under the current security context.
This was a comment, but I had the same issue as well.
This error can occur when a trigger causes a database level exception. This will cause the transaction to be rolled back hence the exception.
There's a problem with your session-per-request pattern implementation. ASP.NET is multi-threaded and the session is being closed when a thread terminates instead of when the request ends. There are many examples of how to manage session-per-request and NHibernate has a built in NHibernate.Context.WebSessionContext but I prefer to use a dependency injection framework such as Ninject.