Я видел, что в Интернете есть много-много сообщений об этом, в том числе и в stackoverflow, но я не нашел способа решить мою проблему. Я попробовал 3 вещи сейчас, и все это не работает:
- Я просто попытался получить файл log4net.dll, полученный из zip-папки log4net со всем исходным кодом в каталоге bin. Результаты : Нет ошибок компиляции, но мой SmtpAppender просто не отправляет сообщения об ошибках по электронной почте.
Итак, я нашел в Интернете, что может быть связано с версией, которую log4net.dll компилировал. Что странно, но в любом случае я столкнулся с одной ошибкой, которая просила меня создать надежный ключ для сборки, и это то, что я сделал и скомпилировал, поэтому я выпускаю этот проект, беру log4net.dll и добавляю его в ссылки моего проекта. Результат : Нет ошибки компиляции, но 1 ошибка при попытке выполнить настройку из строки Global.asax:
protected void Application_Start(object sender, EventArgs e) {
log4net.Config.XmlConfigurator.Configure();
}
Вот ошибка: (См. № Ref1)
- Итак, опять же, я обнаружил эту ветку у некоего Ахмеда Фуада, который, по моему мнению, отлично работал. Вот нить . Я сделал все, что он говорит, но я все еще сталкиваюсь с той же ошибкой (# Ref1).
Кому-нибудь удалось настроить SmtpAppender в веб-приложение C # VS.net с использованием Framework 4.0?
Ref1
Нарушение правил безопасности наследования при переопределении члена: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Доступность для безопасности метода переопределения должна соответствовать доступности безопасности переопределяемого метода
Дополнительная информация (Отзыв № 1)
Я только что попробовал что-то еще. Я открыл полный .sln приложения log4net, преобразованного с VS.net 2010, добавил веб-проект, выглядящий точно так же, как мое приложение, но в этом случае я могу отладить библиотеку Log4net. Вот где это терпит неудачу:
// If we could not find an alias
if (rep == null)
{
LogLog.Debug("DefaultRepositorySelector: Creating repository [" + repositoryName + "] using type [" + repositoryType + "]");
// Call the no arg constructor for the repositoryType
HERE -> rep = (ILoggerRepository)Activator.CreateInstance(repositoryType); <-- HERE
[...]
}