代码之家  ›  专栏  ›  技术社区  ›  David

NHibernate MappingException:无法编译映射文档

  •  7
  • David  · 技术社区  · 14 年前

    以下是跟踪的一些信息:

    NHibernate.Cfg.Environment 2010-07-15 09:20:59577[7]信息 NHibernate.Cfg.Environment[(null)]-NHibernate 2.1.2.4000 0.452436832055471 0.232383 NHibernate.Cfg.Environment 2010-07-15 09:20:59718[7]信息NHibernate.Cfg.Environment[(空)]-字节码 反射优化器 0.529107470362853 0.006327 NHibernate.Cfg.Configuration 2010-07-15 09:20:59827[7]信息NHibernate.Cfg.Configuration[(null)]-映射 0.623336485503046 0.094229 NHibernate.Dialect.Dialect 2010-07-15 09:21:00109[7]信息NHibernate.Dialect.Dialect[(空)]-使用 不编译映射文档: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml文件 Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml---> (结果=1)。错误CS2001:源文件“C:\WINDOWS\TEMP\shp2uoc8.0.cs” 找不到错误CS2008:未指定输入

    在System.Xml.Serialization.Compiler.Compile(程序集父级,字符串 ns,XmlSerializerCompilerParameters xmlParameters,证据) 在System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings,Type[]类型,String defaultNamespace,证据, XmlSerializerCompilerParameters参数,程序集, 哈希表程序集) System.Xml.Serialization.TempAssembly..ctor(XmlMapping[]xmlMappings, (证据)在 System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping) xmlMapping,Type Type,String defaultNamespace)位于 System.Xml.Serialization.XmlSerializer..ctor(类型,字符串 defaultNamespace)位于 System.Xml.Serialization.XmlSerializer..ctor(类型)位于 NHibernate.Cfg.XmlHbmBinding.Binder.Deserialize[T](XmlNode)位于 NHibernate.Cfg.XmlHbmBinding.MappingRootBinder.Bind(XmlNode)位于 NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument doc)--内部异常堆栈跟踪结束--- Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml位于 NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument 文档)位于NHibernate.Cfg.Configuration.AddXmlReader(XmlReader hbmReader,字符串名称)位于 NHibernate.Cfg.Configuration.AddInputStream(流xmlInputStream, 路径,程序集)位于 Kctc.BusinessLayer.NHibernateSessionFactory.get\u SessionFactory()进入 C:\Kctc\Trunk\Kctc.BusinessLayer\NHibernateSessionFactory.cs:第26行
    C:\Kctc\Trunk\Kctc.BusinessLayer\NHibernateSessionFactory.cs:第39行
    在开发人员处\u Test.ListSquirps(objectsender,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(字符串 事件参数) sourceControl,String eventArgument)位于 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
    位于System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔值 包括阶段(同步点)2.20665643259129 0.000558

    有人对这里可能发生的事情有什么建议吗?

    谢谢

    2 回复  |  直到 11 年前
        1
  •  15
  •   David    14 年前

    好的,我知道了。在创建SessionFactory期间调用的XmlSerializer类需要(默认情况下)对C:\Windows\TEMP的写访问权限,这样它就可以生成一些内容并在其中进行重击。

    或者,你也可以关注这个博客上的黑客行为 http://www.hanselman.com/blog/ChangingWhereXmlSerializerOutputsTemporaryAssemblies.aspx . 这将更改XmlSerializer存储其shiznit的默认位置。您只需在web.config/app.config文件的configuration元素中添加以下元素:

    <system.xml.serialization>
      <xmlSerializer tempFilesLocation="C:\SomeFolder\SomeOtherFolder\WhereeverYouWant"/>
    </system.xml.serialization>
    

    为什么文件记录得这么差?

        2
  •  3
  •   gillyb    14 年前