This isn't threadsafe: public ISessionFactory SessionFactory { get { return this.sessionFactory ?? (this.sessionFactory = this.ConfigurationGenerator.Generate().BuildSessionFactory()); } }
I suggest you take a look at how sharp architecture does it: http://github.com/paulbatum/Sharp-Architecture/blob/master/src/SharpArch/SharpArch.Data/NHibernate/NHibernateInitializer.cs On Wed, Feb 17, 2010 at 8:03 PM, Schlaefisch <schlaefi...@googlemail.com>wrote: > 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> > <fluent-nhibernate%2bunsubscr...@googlegroups.com<fluent-nhibernate%252bunsubscr...@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<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.