Мне нравится использовать Fluent NHibernate с AutoMappings, но время от времени я получаю эту ошибку времени выполнения при попытке создать свободную конфигурацию: 'При создании SessionFactory использовалась недействительная или неполная конфигурация. Для получения более подробной информации просмотрите коллекции PotentialReasons и InnerException. 'Fluent NHibernate: Отладка FluentConfigurationException
Теперь это может означать всевозможные вещи, но детали исключения не очень полезны вообще. Иногда класс, который NHibernate не обрабатывается, будет указан в InnerException, в других случаях я получаю такие мистические сообщения:
{"(XmlDocument) (3,6): Ошибка проверки XML: элемент 'class' в namespace 'urn: nhibernate-mapping-2.2' имеет недопустимый дочерний элемент 'property' в пространстве имен 'urn: nhibernate-mapping-2.2'. Список ожидаемых элементов: 'meta, subselect, cache, synchronize, comment, tuplizer, id, составной идентификатор 'в пространстве имен' urn: nhibernate-mapping-2.2 '. "}
Это действительно не помогает мне отслеживать ошибку. Есть ли способ получить подробный журнал того, что NHibernate пытается сделать (т. Е. Какой класс/метод он в настоящее время автоматически отображает), поэтому я могу хотя бы идентифицировать часть моего кода, вызывающего проблему?
редактировать:
Известных причинами этой ошибки:
- подключение к базе данных (должен быть виден в InnerException подробно)
- отсутствующей виртуальный модификатор свойств (следует указать тип в InnerException подробно)
- Отсутствует поле идентификатора (содержит дополнительную ошибку, как указано выше)
NHProfiler выглядит хорошо, но я боюсь по цене. Я попробую решение log4net и отчитаюсь. – Alex
Ведение журнала помогает, хотя я думаю, что добрался до сути, где я могу расшифровать большинство исключений. – Alex
Я был бы удивлен, если многое поможет здесь. У меня была эта ошибка, и я нашел то же самое в журнале NHibernate - никаких дальнейших подсказок. И смешно, что вам придется полагаться на сторонний продукт, чтобы узнать, что в конфигурации вызывает эту ошибку. – UpTheCreek