NHibernate выбрасывает log4net исключение, сообщая, что правильно сформированный XML может быть недействительным? - PullRequest
1 голос
/ 11 декабря 2010

У меня есть дрянное консольное приложение, с которым я играю, чтобы попытаться запустить NHibernate.Я борюсь с тем, насколько это непостоянно, и у него есть неприятная привычка выдавать исключения, для которых трудно найти решения.

Сегодня я запустил свой проект и попытался запустить его, и яполучать ошибки в log4net, на которые я даже напрямую не ссылался.Я сократил свое приложение до следующего кода, и это все еще происходит:

class Program {
    public static void Main(string[] args) {
        Configuration conf = new Configuration();
        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
    }
}

Вывод усеченной ошибки, который я получаю:

log4net:ERROR DefaultRepositorySelector: Exception while reading ConfigurationSettings. Check your .config file is well formed XML.
System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for appSettings: External component has thrown a

Ошибка появляется примерно 10 раз раньшеSharpDevelop вступает во владение и дает мне диалоговое окно исключения.

У меня есть отдельный файл конфигурации hibernate и файл сопоставления, но ни один из них не включен ни как встроенный ресурс, ни скопирован в выходной каталог.Файл app.config выглядит следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    </startup>

    <appSettings>
    </appSettings>
</configuration>

Ошибка по-прежнему происходит без раздела @ startup @.В этом файле нет ссылки на nhibernate-configuration - я загружаю его после создания экземпляра класса Configuration.

Это не было бы так неприятно, если бы вчера не все работало нормально, и яничего не изменилось, кроме добавления двух полей в отображение (которые я снова удалил, когда это не сработало, что не помогло).

Я действительно в растерянности относительно того, как предотвратить возникновение этой ошибки,Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

0 голосов
/ 22 декабря 2010

Вот что я бы порекомендовал

  1. Включите внутреннюю отладку , чтобы вы могли понять, почему Log4Net выдает исключение
  2. Возможно, настройте Console Appender , чтобы видеть записи журнала в вашей консоли

Надеюсь, это поможет вам обнаружить проблемы.

0 голосов
/ 22 декабря 2010

Я смутно припоминаю, что сталкивался с такой ошибкой при использовании log4net.Я не помню, что именно это исправило, но попробуйте следующее.

  1. Даже без прямой ссылки на log4net, убедитесь, что он настроен правильно для страницы Apache (http://logging.apache.org/log4net/release/manual/configuration.html) и включаеткоманда configure в вашем main для хорошей меры.

    XmlConfigurator.Configure();
    
  2. Если раздел appSettings пуст, это может вызвать исключение. Попробуйте полностью избавиться от него. Еще лучше, бросьтетам есть фиктивный узел (да, фиктивные значения лучше по какой-то причине, которую я, ни кто-либо другой, могу объяснить, когда-либо)

0 голосов
/ 11 декабря 2010

После того, как я думаю, что обычно есть элемент.Похоже, что он может искать один из них.Вот ссылка на конфигурацию nHibernate, которая показывает пример:

http://www.beansoftware.com/ASP.NET-Tutorials/NHibernate-Log4Net.aspx

Надеюсь, это указывает вам правильное направление.

Боб

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...