【发布时间】:2010-07-15 08:41:07
【问题描述】:
在我的开发网络应用 NHibernate 上运行得很好。当我预编译和部署站点时,在创建 SessionFactory 时我得到一个 MappingException。
以下是跟踪中的一些信息:
NHibernate.Cfg.Environment 2010-07-15 09:20:59,577 [7] 信息 NHibernate.Cfg.Environment [(null)] - NHibernate 2.1.2.4000 (2.1.2.4000) 0.452436832055471 0.232383 NHibernate.Cfg.Environment 2010-07-15 09:20:59,718 [7] 信息 NHibernate.Cfg.Environment [(null)] - 字节码 供应商名称:lcg 0.522780409241957 0.070344 NHibernate.Cfg.Environment 2010-07-15 09:20:59,734 [7] 信息 NHibernate.Cfg.Environment [(null)] - 使用 反射优化器 0.529107470362853 0.006327 NHibernate.Cfg.Configuration 2010-07-15 09:20:59,827 [7] 信息 NHibernate.Cfg.Configuration [(null)] - 映射 资源:Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml 0.623336485503046 0.094229 NHibernate.Dialect.Dialect 2010-07-15 09:21:00,109 [7] 信息 NHibernate.Dialect.Dialect [(null)] - 使用 方言:NHibernate.Dialect.MsSql2008Dialect 0.91570185596214 0.292365 NHibernate.Cfg.Configuration 2010-07-15 09:21:01,390 [7] 错误 NHibernate.Cfg.Configuration [(null)] - 可以 不编译映射文件: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml NHibernate.MappingException:无法编译映射文档: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml ---> System.InvalidOperationException:无法生成临时类 (结果=1)。错误 CS2001:源文件 'C:\WINDOWS\TEMP\shp2uoc8.0.cs' 找不到错误 CS2008:未指定输入
在 System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns,XmlSerializerCompilerParameters xmlParameters,证据证据) 在 System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters 参数,Assembly 程序集, 哈希表程序集)在 System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] 类型、字符串默认命名空间、字符串位置、证据 证据)在 System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping,类型类型,字符串 defaultNamespace)在 System.Xml.Serialization.XmlSerializer..ctor(类型类型,字符串 默认命名空间)在 System.Xml.Serialization.XmlSerializer..ctor(类型类型)在 NHibernate.Cfg.XmlHbmBinding.Binder.Deserialize[T](XmlNode 节点)在 NHibernate.Cfg.XmlHbmBinding.MappingRootBinder.Bind(XmlNode 节点) 在 NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument doc) --- 内部异常堆栈跟踪结束 --- 2.20609881982207 1.290397 Unhandled Execution Error 无法编译映射文件: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml 在 NHibernate.Cfg.Configuration.LogAndThrow(异常异常)在 NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument doc) 在 NHibernate.Cfg.Configuration.ProcessMappingsQueue() 在 NHibernate.Cfg.Configuration.AddDocumentThroughQueue(NamedXmlDocument 文档)在 NHibernate.Cfg.Configuration.AddXmlReader(XmlReader hbmReader,字符串名称)在 NHibernate.Cfg.Configuration.AddInputStream(流 xmlInputStream, 字符串名称)在 NHibernate.Cfg.Configuration.AddResource(String 路径,装配装配)在 NHibernate.Cfg.Configuration.AddAssembly(Assembly 程序集) 在 Kctc.BusinessLayer.NHibernateSessionFactory.get_SessionFactory() 在 C:\Kctc\Trunk\Kctc.BusinessLayer\NHibernateSessionFactory.cs:第 26 行
在 Kctc.BusinessLayer.NHibernateSessionFactory.OpenSession() 中 C:\Kctc\Trunk\Kctc.BusinessLayer\NHibernateSessionFactory.cs:39 行
在 Developers_Test.ListSquirps(Object sender, EventArgs e) 在 System.Web.UI.WebControls.Button.OnClick(EventArgs e) 在 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 事件参数)在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 事件参数)在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,字符串 eventArgument) 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint) 2.20665643259129 0.000558
这向我表明映射文件有错误或找不到。但是如果开发应用程序运行良好,那么映射文件在预编译和部署时会出现问题吗?!
有人对这里可能发生的事情有任何建议吗?
谢谢
【问题讨论】:
-
这是另一个想法。由于 NHibernate 生成代理类,这些是否存储在文件系统中?这可能是文件权限问题吗?
标签: nhibernate exception deployment nhibernate-mapping