FluentNHibernate异常 - 无法编译映射文档

时间:2014-11-12 17:27:27

标签: c# nhibernate fluent-nhibernate nhibernate-mapping

在发布此问题之前,我已审核过:

Runtime error when trying to run Fluent NHibernate tutorial example

Fluent nHibernate error - Could not compile the mapping document: (XmlDocument)

以及我希望的更多类似问题可以解释我的问题。到目前为止没有运气:

我现在正在解决一段时间的问题,一切都很顺利,直到我最近的改变。解决方案仍然可以编译但在启动时失败并出现此异常:

  

未处理的类型异常   'FluentNHibernate.Cfg.FluentConfigurationException'发生在   xx.Initialization.dll

在查看详细信息中说:

  

创建SessionFactory时使用了无效或不完整的配置。检查PotentialReasons集合,以及InnerException以获取更多详细信息。“

     

PotentialReasons:Count = 0

     

InnerException:无法编译映射文档:xx.Website.Persistence.Repository.Mappings.UI.yyDataDto.hbm.xml

     

内部异常:JIT编译器遇到内部限制。

异常所引用的.hbm.xml文件是完整的,并且没有对其进行任何更改。我所有的代码更改都包含在测试中,而且我改变的任何内容似乎都没有直接涉及异常。

要解决此问题,我提交并推送了所有更改(功能分支)并要求我的同事获取最新版本。他能够毫无例外地运行解决方案。我尝试重新启动我的VS2013,我的工作站,删除我的存储库并通过源代码控制从头开始获取解决方案,以及直接复制我的同事解决方案文件夹(最新版本)并仍然收到相同的错误。

不确定还有什么可以尝试。任何提示/建议将不胜感激。谢谢!

修改/更新

今天我试图修复我的VS2013安装,这没有用。然后我更新到最新的Service Pack 4.也没有结果。

我猜测我的调试器/设置可能有问题,因为如果我构建项目并启动它(没有调试或导航到Bin文件夹并直接执行),它运行没有异常。如果我调试,我得到例外。

这是堆栈跟踪:

   at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
   at Company.Framework.Startup.Behaviour.NHibernateMultiDbBehaviour`2.ConfigureSessionFactory[TFluentMapping](String defaultSchema, String connectionStringKey)
   at Company.Framework.Startup.Behaviour.NHibernateMultiDbBehaviour`2.<>c__DisplayClassa`1.<RegisterNHibernate>b__5()
   at Castle.MicroKernel.Registration.ComponentRegistration`1.<>c__DisplayClassf`1.<UsingFactoryMethod>b__e(IKernel k, ComponentModel m, CreationContext c)
   at Castle.MicroKernel.ComponentActivator.FactoryMethodActivator`1.Instantiate(CreationContext context)
   at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext context)
   at Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext context)
   at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.Resolve(CreationContext context)
   at Castle.MicroKernel.Lifestyle.SingletonLifestyleManager.Resolve(CreationContext context)
   at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired)
   at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context, Boolean instanceRequired)
   at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context)
   at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service, IDictionary additionalArguments)
   at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service)
   at Castle.MicroKernel.DefaultKernel.Resolve(String key, Type service)
   at Castle.MicroKernel.DefaultKernel.Resolve[T](String key)
   at Company.Framework.Startup.Behaviour.NHibernateMultiDbBehaviour`2.<>c__DisplayClassa`1.<RegisterNHibernate>b__7(IKernel kernel)
   at Castle.MicroKernel.Registration.ComponentRegistration`1.<>c__DisplayClass12`1.<UsingFactoryMethod>b__11(IKernel k, ComponentModel m, CreationContext c)
   at Castle.MicroKernel.ComponentActivator.FactoryMethodActivator`1.Instantiate(CreationContext context)
   at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext context)
   at Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext context)
   at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.Resolve(CreationContext context)
   at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired)
   at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context, Boolean instanceRequired)
   at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context)
   at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service, IDictionary additionalArguments)
   at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service)
   at Castle.MicroKernel.DefaultKernel.Resolve(String key, Type service)
   at Castle.Windsor.WindsorContainer.Resolve[T](String key)
   at Company.Framework.Startup.Behaviour.NHibernateMultiDbBehaviour`2.RegisterNHibernate[TFluentMapping](String factoryName, String sessionName, String defaultSchema, String connectionStringKey)
   at Company.Framework.Startup.Behaviour.NHibernateMultiDbBehaviour`2.Start()
   at Company.Framework.Startup.Behaviour.BehaviourManager.AddAndInitialize[T](Action`1 initialize)
   at Company.Framework.Startup.Behaviour.BehaviourManager.Add[T](Action`1 initialize)
   at Company.Project.Initialization.ServiceInitializator.ConfigureBehaviours() in c:\Path\Project.Initialization\ServiceInitializator.cs:line 99

1 个答案:

答案 0 :(得分:0)

解决方案是完全卸载VS2013并从头开始重新安装。在我这样做之后,异常就消失了。

我试图记住可能导致这种情况的原因,到目前为止我唯一的怀疑是,当我运行CCleaner时(在此问题出现之前),它删除了使VS以这种方式运行的文件或注册表项。 / p>