我很喜欢在AutoMappings中使用Fluent NHibernate,但每次偶尔尝试创建流畅配置时都会遇到此运行时错误:'创建SessionFactory时使用了无效或不完整的配置。检查PotentialReasons集合和InnerException以获取更多详细信息。'Fluent NHibernate:调试FluentConfigurationException
现在这可能意味着各种各样的事情,但例外情况细节并没有什么帮助。有时NHibernate无法处理的类将在InnerException中列出,其他时候我得到这样的神秘消息:
{“(XmlDocument)(3,6):XML验证错误:元素'class'in命名空间'urn:nhibernate-mapping-2.2'在名字空间'urn:nhibernate-mapping-2.2'中有无效的子元素'property'。期望的可能元素列表:'meta,sublect,cache,synchronize,comment,tuplizer,在命名空间'urn:nhibernate-mapping-2.2'中使用'composite-id'。“}
这并不能帮助我追踪错误。有没有什么办法可以得到NHibernate试图做什么的详细日志(即它是什么类/方法,它当前是自动映射),所以我至少可以识别导致问题的代码部分?
编辑:
这个错误众所周知的原因:
- 数据库连接(应该是的InnerException详细可见)
- 在属性中没有virtual修饰符(应说明的InnerException详细型)
- 缺少ID字段(如上所列给出非特定错误)
NHProfiler看起来不错,但我在价格上压价。我会尝试log4net解决方案并回报。 – Alex 2009-12-16 00:46:35
日志记录有所帮助,但我认为我现在已经到了可以解密大多数异常的地步。 – Alex 2009-12-16 11:55:27
如果伐木在这里有帮助,我会感到惊讶。我有这个错误,只是在NHibernate日志中发现了同样的东西 - 没有进一步的线索。而且你必须依靠第三方产品才能找出配置中导致这个错误的东西,这很荒谬。 – UpTheCreek 2010-04-22 18:00:10