К основному контенту

Фиксация ошибок в MVC (Elmah)

Мой первый пост о программировании я напишу об ошибках.

Итак, задача  - фиксировать все ошибки пользователей на сайте. А также при желании отправлять их на адрес электронной почты.

В приложении может быть сколько угодно try catch, но это не спасет нас от всех возможных ошибок.

Для того, чтобы фиксировать те ошибки, которые не попали в try catch, хорошие ребята придумали и написали библиотеку Elmah http://code.google.com/p/elmah/
Подключается она к проекту самым простым способом, а именно через NuGet.



После подключения в web.config появятся необходимые ссылки на библиотеку. Нам нужно лишь внести небольшие изменения и все. Задача решена.


<elmah>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data[Папка где будут храниться ошибки]" />
        <errorMail from="[От кого]"
           to="[Кому]"
           subject="Application Exception"
           async="false"
           smtpPort="25"
           smtpServer="[Адрес сервера]"
           userName="[login]"
           password="[password]">
        </errorMail>
</elmah>

Теперь все ошибки будут храниться в папке App_Data, а также приходить к нам на почту. Кстати посмотреть все ошибки, можно по адресу yoursite.com/elmah.axd

Выглядит такой список следующим образом:




Выбрав Details можно посмотреть все подробности об этой ошибке.

Управлять возможностью просматривать ошибки удаленно можно с помощью следующего кода.

<elmah>...<security allowRemoteAccess="0" />...</elmah>

В следующий раз напишу про библиотеку Combres, позволяющую объединять и сжимать css и js файлы.

Комментарии

Популярные сообщения из этого блога

Пример взаимодействия с Odnoklassniki Rest API на C#.

Итак, как и обещал, продолжаю тему взаимодействия с различными API. В прошлый раз писал про  API ВКонтакте , сегодня напишу про API Одноклассников. Первое, что нам нужно сделать - это зарегистрироваться как разработчик на Одноклассниках. Сделать это можно по следующей ссылке  Форма регистрации разработчика приложений Получив права разработчика, необходимо зарегистрировать сайт как приложение. Подробно как это сделать можно прочитать  здесь После того как сайт будет зарегистрирован придет письмо, содержащее: Application ID: xxxxxx. Публичный ключ приложения: xxxxxxxxxxxxxxxxxxxxxxxxx. Секретный ключ приложения:  xxxxxxxxxxxxxxxxxxxxxxxxx. Ссылка на приложение: http://www.odnoklassniki.ru/games/xxxxx Используя эти данные можно начать работу с API. Для выполнения запросов к API пользователь должен авторизоваться в Одноклассниках. Добавляем на нашем сайте ссылку для авторизации пользователя: http://www.odnoklassniki.ru/oauth/authorize?client_id...

Monotouch и Monodevelop. Программируем для iOS на C# на примере нашего проекта. Часть I.

Сегодня я начинаю серию публикаций, посвященных разработке нашего первого приложения под iOS на C#. Так как это проект новый для нас, то статьи будут появляться по мере нашего продвижения в этом вопросе. Предыстория . Руководство поставило задачу своими силами сделать приложение Интернет-магазина для iPhon-ов и iPad-ов. А в дальнейшем и под Android. Как разработчики на C# мы стали изучать варианты реализации. И остановились на  Monotouch . Monotouch - это надстройка к Monodevelop, которая позволяет писать приложения под iOS на C#. Код компилируется в нативный objective C и прекрасно работает под iOS. Причем Monotouch позволяет писать не только для iOS, но и для Android. Как раз то, что нужно. Вы спросите, что такое Monodevelop? Это среда разработки на C#, работающая под Mac OS. Так сказать аналог VisualStudio для Mac-ов. И все же почему Monotouch? Ответ прост - низкий порог вхождения. Зная C# можно сразу начинать работу над приложением не тратя время на и...

C# POST. Отправляем запросы на адрес стороннего сервера.

В ходе работы очень часто сталкиваюсь с различными внешними API, которые принимают на вход данные, отправленные через POST запрос, и возвращают результат в виде xml или json. Ниже привожу свой метод отправляющий данные на адрес стороннего сервера через POST: postedData - данные, отправляемые на сервер, postUrl - адрес, по которому мы обращаемся public static HttpWebResponse PostMethod(string postedData, string postUrl) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl); request.Method = "POST"; request.Credentials = CredentialCache.DefaultCredentials; UTF8Encoding encoding = new UTF8Encoding(); var bytes = encoding.GetBytes(postedData); request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = bytes.Length; using (var newStream = request.GetRequestStream()) { newStream.Write(bytes, 0, bytes.Length); newStream.Close(); } return (HttpWebResponse)request.GetResponse(); } Метод возвращает ответ ...