Как я могу создать полный trace.axd в ASP.NET MVC? - PullRequest
9 голосов
/ 18 июля 2009

В моем приложении после включения ASP.NET Tracing в приложении ASP.NET MVC статистика вычисления времени была отключена с коэффициентом 5000.

У меня есть страница, загрузка которой занимает от 7 до 9 секунд. Это подтверждается как Firebug, так и полем «занимает время» в файлах журнала IIS. (Это просто страница, возвращаемая клиенту, а не макет, DOM или выполнение скрипта.)

Однако, когда я включаю трассировку по всему приложению (через web.config) и просматриваю вывод трассировки, время, затраченное с «Begin PreInit» на «End Render», составляет менее 0,001 секунды.

Я предполагаю, что это потому, что Trace.axd был создан с учетом WebForms, а MVC обходит традиционный жизненный цикл страницы.

Тем не менее, даже если я добавлю пользовательские трассировки в начале и конце OnActionExecuting / OnActionExecuted , время все равно будет меньше 0,1 секунды.

Кто-нибудь знает, где в ASP.NET MVC мне нужно будет подключиться, чтобы выходные данные trace.axd сообщали точное время выполнения?

1 Ответ

7 голосов
/ 18 июля 2009

Может случиться так, что время для самого метода действия не является большой частью выполнения.Попробуйте проверить время между OnResultExecuting / OnResultExecuted.Это в основном время для фактического отображения страницы в HTML, тогда как OnActionExecuting / OnActionExecuted - это (в основном) время для настройки данных для представления.

Обратите внимание, что если вы используете LINQ, сами запросы данных могутбыть отложено до отображения страницы (модель перечислена).То есть медлительность может быть связана не со сложностью страницы, а с доступом к данным, даже если на выполнение результата уходит время.

...