Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASP.NET MVC Урок 1-F / ASP.NET MVC Урок 1

.pdf
Скачиваний:
56
Добавлен:
09.03.2016
Размер:
1.92 Mб
Скачать

событий. В результате все модули сохраняют свои текущие состояния.

Application_ResolveRequestCache – наступает, когда ASP.NET выполняет запрос авторизации. Это позволяет модулям кеширования обработать запрос и обслужить из кэша, минуя обработчик выполнения.

Application_UpdateRequestCache – наступает, когда ASP.NET завершает выполнение обработчика, чтобы модули кеширования могли сохранить результат для использования в последующих ответах.

Application_AuthenticateRequest – наступает, когда модуль идентификации устанавливает личность текущего пользователя как действительную. В текущий момент, учетные данные пользователя уже проверены.

Application_AuthorizeRequest – наступает, когда модуль авторизации подтверждает, что пользователь может иметь доступ к ресурсам.

Session_Start – наступает, когда новый пользователь заходит на сайт.

Session_End – наступает, когда истекает время сессии пользователя, или он покидает сайт.

Хорошо. Теперь, чтобы воочию убедимся, что всё именно так и происходит, добавим протоколирование и сделаем это через добавление NLog модуля в NuGet.

Package Manager Console

В NuGet есть консоль для выполнения команд по установке\удалению\поиску модулей, и других вещей, типа скаффолдинга.

Для вывода всех установленных модулей пишем:

*HW 3DFNDJH

Для получения всех доступных к установке модулей:

*HW 3DFNDJH ±/LVW$YDLODEOH

Для получения всех доступных модулей с названием NLog

*HW 3DFNDJH /LVW$YDLODEOH )LOWHU 1/RJ

Или

*HW 3DFNDJH /LVW$YDLODEOH_ ZKHUH^ B ,G PDWFK1/RJ` ɷɬɨ ɞɨɥɶɲɟ

Для установки модуля NLog необходимо вначале выбрать проект (если их в солюшене больше одного) и ввести команду:

,QVWDOO 3DFNDJH 1/RJ

Файлы копируются в проект, добавляются ссылки на сборки и web.config может быть обновлен. Для удаления из проекта модуля необходимо, чтобы он не был связан с другими модулями. Удаляем так:

8QLQVWDOO 3DFNDJH 1/RJ

NLog

После установки пользуемся документацией на NLog (https://github.com/nlog/nlog/wiki/Tutorial) и добавляем в Web.config:

FRQILJ6HFWLRQV!

VHFWLRQ QDPH QORJ W\SH 1/RJ &RQILJ &RQILJ6HFWLRQ+DQGOHU 1/RJ!

QORJ [POQV KWWS ZZZ QORJ SURMHFW RUJ VFKHPDV 1/RJ [VG [POQV [VL KWWS ZZZ Z RUJ ;0/6 FKHPD LQVWDQFH!

WDUJHWV!

WDUJHW QDPH ORJILOH [VL W\SH )LOH ILOH1DPH & ILOH W[W!

WDUJHWV!

UXOHV!

ORJJHU QDPH PLQOHYHO ,QIR ZULWH7R ORJILOH!

UXOHV!QORJ!

Мы ее потом исправим. Добавим в код (Global.asax.cs):

SXEOLF FODVV 0YF$SSOLFDWLRQ 1LQMHFW+WWS$SSOLFDWLRQ

^

SULYDWH VWDWLF1/RJ /RJJHU ORJJHU 1/RJ /RJ0DQDJHU *HW&XUUHQW&ODVV/RJJHU

и

SURWHFWHG YRLG $SSOLFDWLRQB6WDUW

^

ORJJHU ,QIR $SSOLFDWLRQ 6WDUW

$UHD5HJLVWUDWLRQ 5HJLVWHU$OO$UHDV

)LOWHU&RQILJ 5HJLVWHU*OREDO)LOWHUV *OREDO)LOWHUV )LOWHUV

5RXWH&RQILJ 5HJLVWHU5RXWHV 5RXWH7DEOH 5RXWHV

%XQGOH&RQILJ 5HJLVWHU%XQGOHV %XQGOH7DEOH %XQGOHV

`

SXEOLF YRLG ,QLW

^

ORJJHU ,QIR $SSOLFDWLRQ ,QLW

`

SXEOLF YRLG 'LVSRVH

^

ORJJHU ,QIR $SSOLFDWLRQ 'LVSRVH

`

SURWHFWHG YRLG $SSOLFDWLRQB(UURU

^

ORJJHU ,QIR $SSOLFDWLRQ (UURU

`

SURWHFWHG YRLG $SSOLFDWLRQB(QG

^

ORJJHU ,QIR $SSOLFDWLRQ (QG

`

Запустим и завершим приложение (Stop). Откроем файл C://file.txt. Мы увидим, какие события происходили.

_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 6WDUW_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ ,QLW_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ ,QLW_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ %HJLQ5HTXHVW_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ$XWKHQWLFDWH5HTXHVW_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ$XWKRUL]H5HTXHVW_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 5HVROYH5HTXHVW&DFKH_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_6HVVLRQ 6WDUW_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ$FTXLUH5HTXHVW6WDWH_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 3UH5HTXHVW+DQGOHU([HFXWH_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 3UH5HTXHVW+DQGOHU([HFXWH_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 5HOHDVH5HTXHVW6WDWH_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 8SGDWH5HTXHVW&DFKH_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ (QG5HTXHVW

_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 3UH6HQG5HTXHVW+HDGHUV_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_6HVVLRQ (QG_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 'LVSRVH_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ (QG_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 'LVSRVH

В Application_Start выполняется регистрация:

Area (области),

Filter (фильтры),

Bundle (комплекты),

Route (маршруты).

Подробности по инициализации Filter, Вundle и Route находятся в папке App_Start.

WebActivator

WebActivator – это модуль, который позволяет запустить код до самого первого старта App_Start. Это может быть необходимо для того, чтобы, к примеру, создать тестовую БД перед запуском. Установим:

,QVWDOO 3DFNDJH :HE$FWLYDWRU([

Добавим класс в App_Start папку:

>DVVHPEO\ :HE$FWLYDWRU 3UH$SSOLFDWLRQ6WDUW0HWKRGW\SHRI3UH6WDUW$SS6WDUW@ QDPHVSDFH /HVVRQ$SSB6WDUW

^

SXEOLF VWDWLF FODVV 3UH6WDUW$SS

^

SULYDWH VWDWLF1/RJ /RJJHU ORJJHU 1/RJ /RJ0DQDJHU *HW&XUUHQW&ODVV/RJJHU

VXPPDU\!

Ɇɟɬɨɞ ɡɚɩɭɫɤɚɟɬɫɹ ɨɞɢɧ ɪɚɡ ɩɟɪɟɞ ɫɬɚɪɬɨɦ ɩɪɢɥɨɠɟɧɢɹ

VXPPDU\!

SXEOLF VWDWLF YRLG 6WDUW

^

ORJJHU ,QIR $SSOLFDWLRQ 3UH6WDUW

`

`

`

В файле логов увидим, что строка Application PreStart исполняется раньше Application Start:

_,1)2_/HVVRQ$SSB6WDUW 3UH6WDUW$SS_$SSOLFDWLRQ 3UH6WDUW

_,1)2_/HVVRQ 0YF$SSOLFDWLRQ_$SSOLFDWLRQ 6WDUW

Создадим четыре файла отдельно для trace (трассировки), debug (отладки), info (информации), error (ошибки). Определим место записи:/Contents/logs/[текущая дата] Перепишем конфигурацию:

QORJ DXWR5HORDG WUXH [POQV KWWS ZZZ QORJ SURMHFW RUJ VFKHPDV 1/RJ [VG [POQV [VL KWWS ZZ Z Z RUJ ;0/6FKHPD LQVWDQFH!

YDULDEOH QDPH ORJ'LUHFWRU\ YDOXH ^EDVHGLU` &RQWHQW ORJV ^VKRUWGDWH`!

WDUJHWV!

WDUJHW QDPH ILOH/RJ7UDFH [VL W\SH )LOH ILOH1DPH ^ORJ'LUHFWRU\` WUDFH W[W!

WDUJHW QDPH ILOH/RJ'HEXJ [VL W\SH )LOH ILOH1DPH ^ORJ'LUHFWRU\` GHEXJ W[W!

WDUJHW QDPH ILOH/RJ,QIR [VL W\SH )LOH ILOH1DPH ^ORJ'LUHFWRU\` LQIR W[W!

WDUJHW QDPH ILOH/RJ(UURUV [VL W\SH )LOH ILOH1DPH ^ORJ'LUHFWRU\` HUURUV W[W!

WDUJHWV!

UXOHV!

ORJJHU QDPH OHYHO 7UDFH ZULWH7R ILOH/RJ7UDFH!

ORJJHU QDPH OHYHO 'HEXJ ZULWH7R ILOH/RJ'HEXJ!

ORJJHU QDPH OHYHO ,QIR ZULWH7R ILOH/RJ,QIR!

ORJJHU QDPH PLQOHYHO :DUQ ZULWH7R ILOH/RJ(UURUV!

UXOHV!QORJ!

Log2Console

Для NLog есть еще классная программа Log2Console, которая позволяет получать логи прямо в окне программы.

Запускаем программу и настраиваем приемщик:

В Web.config пишем:

WDUJHW QDPH 7FS2XWOHW [VL W\SH 1/RJ9LHZHU DGGUHVV WFS ORFDOKRVW!

Обращаю внимание, что писать надо address=”tcp4://…”, а неaddress=”tcp://…”

Все исходники находятся по адресу https://bitbucket.org/chernikov/lessons

Соседние файлы в папке ASP.NET MVC Урок 1-F