【发布时间】:2023-03-19 09:50:01
【问题描述】:
我有一个使用 FluentNHibernate 的旧版 WCF 服务(连同 EF 和存储过程)。该服务运行良好一年多。最近我们将 apppool 回收设置从默认更改为每天上午 10 点进行 apppool 回收。自该更改以来,至少两次,我的 WCF 服务因以下异常而失败
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()
需要注意的一些有趣的事情
- 两次,错误都在 apppool 回收后几秒钟开始出现,这让我相信这与此密切相关
- 每次应用程序池回收后都不会发生这种情况
- 这在我们的测试环境中不会发生,其中 apppool 回收设置为 IIS 默认设置
这很难在本地重现。我已经查看了有关相同异常的以下 SO 问题,但它们处于完全不同的上下文中,并且这些问题的作者一直在获得该异常,但此处并非如此
Runtime error when trying to run Fluent NHibernate tutorial example
Fluent nHibernate error - Could not compile the mapping document: (XmlDocument)
【问题讨论】:
标签: c# nhibernate fluent-nhibernate