应用KB3122648更新后,FluentNHibernate中的BuildSessionFactory挂起

时间:2016-10-28 11:53:51

标签: .net xml xslt nhibernate fluent-nhibernate

应用MS16-019 security update后,FluentNHibernate 1.1无法构建会话工厂 - 它只是挂在BuildSessionFactory调用上。

NHibernate在映射XML之前记录中断:

[1] INFO  NHibernate.Cfg.Environment - NHibernate 2.1.2.4000 (2.1.2.4000)
[1] INFO  NHibernate.Cfg.Environment - hibernate-configuration section not found in application configuration file
[1] INFO  NHibernate.Cfg.Environment - Bytecode provider name : lcg
[1] INFO  NHibernate.Cfg.Environment - Using reflection optimizer

所以它看起来像是挂在反射优化器部分(我试图禁用**)或者在读取/应用XML映射时。

** - ExposeConfiguration(x => x.SetProperty("use_reflection_optimizer", "false"))

在工作场景中(在应用MS16-019更新之前),“使用反射优化器”之后是:

[1] DEBUG NHibernate.Cfg.Configuration - Mapping XML:
<hibernate-mapping...</hibernate-mapping>
[1] INFO  NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.MsSql2005Dialect

我的猜测是,在修复MS16-019之后映射xml变得无效,但我怎么能找出究竟是什么错误以及FluentNHibernate版本为此修复了什么?

1 个答案:

答案 0 :(得分:0)

在我通过额外的日志记录在本地重新编译NHibernate库之后,我能够发现SelectNodes ClassExtractor.GetClassEntries中的{{3}}调用挂起。这个问题从NH​​ibernate 3.3.x开始修复。