C# FluentNHibernate-无法从输入流(XmlDocument)配置数据存储
我有一个使用FluentNHibernate的传统WCF服务(以及EF和存储过程)。这项服务在一年多的时间里运作良好。最近,我们将apppool回收设置从默认设置更改为每天上午10点进行apppool回收。自从那次更改以来,我的WCF服务至少两次失败,出现以下异常C# FluentNHibernate-无法从输入流(XmlDocument)配置数据存储,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我有一个使用FluentNHibernate的传统WCF服务(以及EF和存储过程)。这项服务在一年多的时间里运作良好。最近,我们将apppool回收设置从默认设置更改为每天上午10点进行apppool回收。自从那次更改以来,我的WCF服务至少两次失败,出现以下异常 FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a S
FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
---> FluentNHibernate.Cfg.FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.
---> NHibernate.MappingException: Could not configure datastore from input stream (XmlDocument) ---> System.NullReferenceException: Object reference not set to an instance of an object.
at NHibernate.Cfg.MappingsQueue.GetNextAvailableResource()
at NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream, String name)
--- End of inner exception stack trace ---
at NHibernate.Cfg.Configuration.LogAndThrow(Exception exception)
at NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream, String name)
at NHibernate.Cfg.Configuration.AddDocument(XmlDocument doc, String name)
at FluentNHibernate.PersistenceModel.Configure(Configuration cfg)
at FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration cfg)
at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()
--- End of inner exception stack trace ---
at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration()
at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
--- End of inner exception stack trace ---
at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
有几件有趣的事要注意
经过数小时的调查,问题归结为多个线程试图创建会话工厂。我本以为NH会话工厂是线程安全的,但遗憾的是它不是,我不得不输入int代码使其线程安全