ELMAH для ASP.NET MVC 4 с использованием SQL SERVER 2008 R2
Я запустил SQL-скрипты ELMAH в тестовой БД (он создал таблицу ELmah_Error и 3 хранимые процедуры) и настроил ELMAH в приложении MVC с помощью Nuget.
Я изменил web.config как указано, и я могу регистрировать исключения в
http://mysite/elmah.axd
Но вместо этого я хочу регистрировать исключения в Sql Server.
- Не удалось найти хранимую процедуру «ELMAH_GetErrorsXml»
- Поле XML запроса ELMAH
- ELMAH Вход в SQL Server
- Elmah не работает на сервере IIS7
- Отдельная база данных для хранения журналов и исключений
Я добавил ниже класс для достижения этого
public class ElmahHandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute { public override void OnException(System.Web.Mvc.ExceptionContext context) { LogException(e); } private static void LogException(Exception e) { // Call to Database and insert the exception info } }
Последним шагом было:
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ElmahHandleErrorAttribute ()); }
Правильно ли использовать ELMAH для регистрации всех исключений или AM, я что-то пропустил?
После настройки базы данных все, что вам нужно сделать, это добавить в раздел <elmah>
свой файл web.config, чтобы настроить Elmah для входа в базу данных SQL:
<elmah> <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="<DBConnString>" applicationName="<YourApp>" </elmah>
Замените <DBConnString>
и <YourApp>
соответствующими значениями для вашей конфигурации.
Как только вы это сделаете, вам не нужно будет использовать свой собственный класс ElmahHandleErrorAttribute.
Я не уверен, какой пакет NuGet вы установили, но я бы рекомендовал использовать пакет Elmah.MVC , поскольку он интегрирует Elmah в MVC исключительно хорошо, настроив для вас все ErrorHandlers и ErrorFilters.