Регистрация производительности для страниц WebForms через MVC-маршрутизацию - PullRequest
0 голосов
/ 06 декабря 2010

У нас есть устаревшее приложение, которое является частично- ASP.NET WebForms и частично- ASP.NET MVC.

Чтобы придать всем URL-адресам "стиль" MVC, мы зарегистрировали набор маршрутов для сопоставления желаемых URL-адресов с URL-адресами веб-форм.

, например

routes.Map("somemapping", "NiceUrl/{page}").To("~/UglyUrl/UglyPath/{page}.aspx");

На контроллерах MVC мы реализовали запись производительности методов действий с помощью пользовательского атрибута, который наследуется от ActionFilterAttribute и переопределяет OnActionExecuting и OnActionExecuted.

Мы хотели бы внедрить аналогичное ведение журнала для страниц WebForms. Можно ли подключиться к части маршрутизации и оттуда войти?

1 Ответ

1 голос
/ 06 декабря 2010

Использование System.Diagnostics.StopWatch может решить вашу проблему на глобальном уровне.

Вот мое предлагаемое решение:1. В приложении BeginRequest создать новый экземпляр StopWatch.2. Вызвать метод запуска на экземпляре секундомера.3. Поместите секундомер в коллекцию HttpContext.Current.Items.4. В запросе на завершение приложения получите экземпляр StopWatch из элементов httpcontext, вызовите метод stop и используйте выбранное свойство «Elapsed», чтобы получить необходимые данные времени, которые вы хотели бы сохранить

это обеспечит единственное место, где вы можете измерить время обработки всех запросов, mvc и webforms.

...