NHibernate MappingException: не Мог скомпилировать отображающийся документ

На моем dev веб-приложении NHibernate работает просто денди. Когда я предварительно компилирую и развертываю сайт, я получаю MappingException, когда SessionFactory создается.

Вот некоторая информация от трассировки:

NHibernate. Cfg. Среда 15.07.2010 9:20:59  577 [7] ИНФОРМАЦИЯ NHibernate. Cfg. Среда [(пустой указатель)] - NHibernate 2.1.2.4000 (2.1.2.4000) 0.452436832055471 0.232383 NHibernate. Cfg. Среда 15.07.2010 9:20:59  718 [7] ИНФОРМАЦИЯ NHibernate. Cfg. Среда [(пустой указатель)] - Имя поставщика байт-кода: lcg 0.522780409241957 0.070344 NHibernate. Cfg. Среда 15.07.2010 9:20:59  734 [7] ИНФОРМАЦИЯ NHibernate. Cfg. Среда [(пустой указатель)] - Используя отражательный оптимизатор 0.529107470362853 0.006327 NHibernate. Cfg. Конфигурация 15.07.2010 9:20:59  827 [7] ИНФОРМАЦИЯ NHibernate. Cfg. Конфигурация [(пустой указатель)] - Отображающийся ресурс: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml 0.623336485503046 0.094229 NHibernate. Диалект. Диалект 15.07.2010 9:21:00  109 [7] ИНФОРМАЦИЯ NHibernate. Диалект. Диалект [(пустой указатель)] - Используя диалект: NHibernate. Диалект. MsSql2008Dialect 0.91570185596214 0.292365 NHibernate. Cfg. Конфигурация 15.07.2010 9:21:01  390 [7] ОШИБКА NHibernate. Cfg. Конфигурация [(пустой указатель)] - не Могла скомпилировать отображающийся документ: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml NHibernate. MappingException: не Мог скомпилировать отображающийся документ: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml---> Система. InvalidOperationException: Не мог генерировать временный класс (result=1). ошибка CS2001: Исходный файл 'C:\WINDOWS\TEMP\shp2uoc8.0.cs' не мог быть найден ошибкой CS2008: Никакие исходные данные не указаны

в System. Xml. Сериализация. Компилятор. Скомпилируйте (Родитель блока, Строка не уточнено, XmlSerializerCompilerParameters xmlParameters, доказательство Доказательства) в System. Xml. Сериализация. TempAssembly. GenerateAssembly (XmlMapping [] xmlMappings, Тип [] типы, Строка defaultNamespace, доказательство Доказательства, параметры XmlSerializerCompilerParameters, блок блока, блоки Хеш-таблицы) в System. Xml. Сериализация. TempAssembly.. ctor (XmlMapping [] xmlMappings, Тип [] типы, Строка defaultNamespace, Строковое местоположение, доказательство Доказательства) в System. Xml. Сериализация. XmlSerializer. GenerateTempAssembly (XmlMapping xmlMapping, тип Типа, Строка defaultNamespace) в System. Xml. Сериализация. XmlSerializer.. ctor (Вводят тип, Строка defaultNamespace) в System. Xml. Сериализация. XmlSerializer.. ctor (Вводят тип) в NHibernate. Cfg. XmlHbmBinding. Редактор связей. Десериализуйте [T] (узел XmlNode) в NHibernate. Cfg. XmlHbmBinding. MappingRootBinder. Свяжите (узел XmlNode) в NHibernate. Cfg. Конфигурация. AddValidatedDocument (документ NamedXmlDocument)---Конец внутреннего отслеживания стека исключительной ситуации---2.20609881982207 1.290397 Необработанная Ошибка Выполнения не Мог скомпилировать отображающийся документ: Kctc.BusinessLayer.Mappings.StoredWill.hbm.xml в NHibernate. Cfg. Конфигурация. LogAndThrow (Исключение исключения) в NHibernate. Cfg. Конфигурация. AddValidatedDocument (документ NamedXmlDocument) в NHibernate. Cfg. Конфигурация. ProcessMappingsQueue () в NHibernate. Cfg. Конфигурация. AddDocumentThroughQueue (документ NamedXmlDocument) в NHibernate. Cfg. Конфигурация. AddXmlReader (XmlReader hbmReader, Имя строки) в NHibernate. Cfg. Конфигурация. AddInputStream (Поток xmlInputStream, Имя строки) в NHibernate. Cfg. Конфигурация. AddResource (Строковый путь, блок блока) в NHibernate. Cfg. Конфигурация. AddAssembly (Блок блока) в Kctc. BusinessLayer. NHibernateSessionFactory.get_SessionFactory () в C:\Kctc\Trunk\Kctc.BusinessLayer\NHibernateSessionFactory.cs:line 26
в Kctc. BusinessLayer. NHibernateSessionFactory. OpenSession () в C:\Kctc\Trunk\Kctc.BusinessLayer\NHibernateSessionFactory.cs:line 39
в Developers_Test. ListSquirps (Объектный отправитель, EventArgs e) в System. Сеть. UI.WebControls. Кнопка. OnClick (EventArgs e) в Системе. Сеть. UI.WebControls. Кнопка. RaisePostBackEvent (Представляют eventArgument в виде строки) в System. Сеть. UI.WebControls. Кнопка. Система. Сеть. UI.IPostBackEventHandler. RaisePostBackEvent (Представляют eventArgument в виде строки) в System. Сеть. UI.Page. RaisePostBackEvent (IPostBackEventHandler sourceControl, Строка eventArgument) в System. Сеть. UI.Page. RaisePostBackEvent (постданные NameValueCollection)
в System. Сеть. UI.Page. ProcessRequestMain (булевская переменная includeStagesBeforeAsyncPoint, булевская переменная includeStagesAfterAsyncPoint) 2.20665643259129 0.000558

Это предлагает мне или что отображающийся файл имеет ошибку или не мог быть найден. Но если dev приложение хорошо работает, как может там быть проблема с отображающимся файлом, когда это предварительно компилируется и развертывается?!

У кого-либо есть какое-либо предложение относительно того, что могло бы происходить здесь?

Спасибо

7
задан Răzvan Flavius Panda 24 April 2013 в 09:47
поделиться

2 ответа

Хорошо, я понял. Классу XmlSerializer, который вызывается во время создания SessionFactory, требуется доступ для записи в (по умолчанию) C: \ Windows \ TEMP, чтобы он мог сгенерировать какой-то материал и забить его там.

Кроме того, вы можете следить за хаком в этом блоге http://www.hanselman.com/blog/ChangingWhereXmlSerializerOutputsTemporaryAssemblies.aspx . Это изменяет расположение по умолчанию, в котором XmlSerializer хранит свой shiznit. Все, что вам нужно сделать, это добавить следующий элемент в элемент конфигурации вашего файла web.config / app.config:

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

Первое решение похоже на проблему безопасности, а второе - на неуклюжий взлом с труднодоступными -предвидеть последствия.

Почему это так плохо задокументировано?

15
ответ дан 6 December 2019 в 10:47
поделиться

Убедитесь, что файл .hbm.xml определен как встроенный ресурс в вашем проекте.

3
ответ дан 6 December 2019 в 10:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: