Elmah.MVC против Elmah.contrib.Mvc
Я новичок в ASP.NET MVC, и я ищу наименее болезненный способ для создания глобальной обработки ошибок, регистрации и создания отчетов (по электронной почте). FYI, мое приложение ASP.NET MVC размещается в роли веб-роли в Azure, но я стараюсь избегать использования каких-либо зависимых от Azure перехватов.
Похоже, что установка ELMAH и настройка - хороший первый шаг.
Когда я смотрю в NuGet, я вижу:
- ELMAH ( "ELMAH с начальной конфигурацией для быстрого запуска..." )
- Elmah.Contrib.Mvc( "... предназначен для упрощения использования внутри проектов MVC..." )
- Elmah.MVC( "... безболезненная интеграция в MVC..." )
Какой из этих пакетов я хочу установить?
EDIT: после некоторых экспериментов я более смущен. Я сравнил файлы проекта после установки каждого из трех вариантов поверх стандартного приложения MVC 4 по умолчанию. Похоже, что ни Elmah.Contrib.Mvc, ни Elmah.MVC не добавляют пакет elmah.1.2.2 (который я получаю, когда устанавливаю базовый ELMAH). Кроме того, ни один пакет не добавляет раздел <elmah>
в Web.config.
Итак... мне нужно сначала установить ELMAH, а затем установить один из пакетов "... MVC", чтобы получить какие-то отличные улучшения, которые они предположительно получают от меня?
Ответы
Ответ 1
ELMAH - это ELMAH-пакет по умолчанию, в котором нет специального кода mvc, если вы не делаете то, что описано здесь Я не верю, что ELMAH регистрирует любые ошибки, которые происходят в ваших контроллерах, и вы не сможете получить доступ к странице журнала ELMAH
Elmah.Contrib.Mvc - Это усовершенствование ELMAH специально для MVC, основанного на одном из создателей ответа ELMAHS на вопрос о переполнении стека.
Elmah.MVC - Это похоже на вышеупомянутый пакет, но я считаю, что он обеспечивает гораздо лучшую поддержку функций mvc, таких как маршруты и т.д., It также довольно легко установить и настроить, он удаляет много беспорядков вокруг вас, что вам нужно будет сделать с ELMAH, чтобы вытащить различные части, которые необходимы при запуске в проекте mvc
Вы можете прочитать сообщения авторов, чтобы лучше понять, как это работает:
Лично я считаю, что последний пакет был бы лучшим в использовании, он, кажется, более обновлен и поддерживается двумя mvc-тегами.
Ответ 2
Вы можете использовать Элфар вместо Эльмы. Elfar "вдохновлен" Elmah, но предназначен для специфики MVC и очень прост в настройке.
Просто откройте NuGet и найдите Elfar. Вы найдете несколько различных пакетов, но в целом вы хотите тот, который соответствует технологии, которую вы используете в использовании. Я не знаком с веб-ролями Azure, но если у вас есть доступ к стандартным Sql-серверам, вы можете просто использовать Elfar.SqlClient.
Подробнее здесь:
https://github.com/stevenbey/elfar/wiki