We have a WebSessionManager implemented as singleton which creates the
sessionfactory, using fluent configuration, as needed.

Here is the relevant code:

    public class WebSessionManager : ISessionManager
    {
        private static WebSessionManager sessionManager;
        private ISessionFactory sessionFactory;
        private IConfigurationGenerator configurationGenerator;

        public static WebSessionManager Instance
        {
            get { return sessionManager ?? (sessionManager = new
WebSessionManager()); }
        }
        public ISession Session
        {
            get
            {
                if (!
ManagedWebSessionContext.HasBind(HttpContext.Current,
this.SessionFactory))
                {
                    ManagedWebSessionContext.Bind(HttpContext.Current,
this.SessionFactory.OpenSession());
                }
                return
this.SessionFactory.GetCurrentSession();
            }
        }
        public ISessionFactory SessionFactory
        {
            get { return this.sessionFactory ?? (this.sessionFactory =
this.ConfigurationGenerator.Generate().BuildSessionFactory()); }
        }
    }

    public class ConfigurationGenerator : IConfigurationGenerator
    {
        private readonly string connectionString;
        private readonly string sessionContext; // Here: "managed_web"

        public FluentConfiguration Generate()
        {
              FluentConfiguration config = Fluently.Configure()
                     
.Database(MsSqlConfiguration.MsSql2005.ConnectionString(this.connectionString)
                     .ShowSql().CurrentSessionContext(this.sessionContext))
                     .Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<IConfigurationGenerator>());
            return config;
        }
     }


On Feb 16, 4:58 pm, James Gregory <jagregory....@gmail.com> wrote:
> Where and how are you creating your session factory?
>
> On Tue, Feb 16, 2010 at 3:06 PM, Schlaefisch 
> <schlaefi...@googlemail.com>wrote:
>
> > Hi,
>
> > we're using fluent NHibernate within a SharePoint 2007 WebPart.
> > Everything works fine except for one problem:
>
> > If we reset the web server and 2 (or more) users try to browse the
> > WebPart, the session factory is created twice at the same time,
> > resulting in a null reference exception.
>
> > Is there any standard approach to prevent this?
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Fluent NHibernate" group.
> > To post to this group, send email to fluent-nhibern...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > fluent-nhibernate+unsubscr...@googlegroups.com<fluent-nhibernate%2bunsubscr...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/fluent-nhibernate?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Fluent NHibernate" group.
To post to this group, send email to fluent-nhibern...@googlegroups.com.
To unsubscribe from this group, send email to 
fluent-nhibernate+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/fluent-nhibernate?hl=en.

Reply via email to