Anybody have any tips on handling an nhibernate session with the asp.net mvc?

I created a class called SessionHandler, implemented IHttpModule and registered it in web.config.
Code:
public class SessionHandler : IHttpModule
    {
        //private static readonly string KEY = "NHibernateSession";

        public void Init(HttpApplication context)
        {
            context.EndRequest += new EventHandler(context_EndRequest);
            context.BeginRequest += new EventHandler(context_BeginRequest);
        }

        public void Dispose()
        {
        }

        private void context_BeginRequest(object sender, EventArgs e)
        {
            HttpApplication application = (HttpApplication)sender;
            HttpContext context = application.Context;

            context.Items[NHibernateHelper.CurrentSessionKey] = NHibernateHelper.GetCurrentSession();
        }

        private void context_EndRequest(object sender, EventArgs e)
        {
            HttpApplication application = (HttpApplication)sender;
            HttpContext context = application.Context;

            ISession session = context.Items[NHibernateHelper.CurrentSessionKey] as ISession;
            if (session != null)
            {
                try
                {
                    session.Flush();
                    session.Close();
                }
                catch { }
            }

            context.Items[NHibernateHelper.CurrentSessionKey] = null;
        }

        public static ISession CurrentSession
        {
            get
            {
                HttpContext currentContext = HttpContext.Current;
                ISession session = currentContext.Items[NHibernateHelper.CurrentSessionKey] as ISession;

                if (session == null)
                {
                    session = NHibernateHelper.GetCurrentSession();
                    currentContext.Items[NHibernateHelper.CurrentSessionKey] = session;
                }

                return session;
            }
        }

    }
I will replace that current session key with the commented out string declared at top of class.


The biggest problem I can see with this approach is that a session is created and closed every single time an http request is made, even if it does not need access to the database. Are there any other approaches to this? Anyone have any experience with this asp.net mvc?