2010-12-06 4 views
0

우리는 part-ASP.NET WebForms 및 part-ASP.NET MVC라는 기존 응용 프로그램을 보유하고 있습니다.MVC 라우팅을 통한 WebForms 페이지의 성능 로깅

모든 URL에 MVC "스타일"을 제공하기 위해 원하는 URL을 다시 WebForms URL에 매핑하는 일련의 경로를 등록했습니다.

우리가 ActionFilterAttribute에서 상속 및 OnActionExecutingOnActionExecuted을 재정의하는 사용자 지정 특성의 방법으로 액션 메소드의 성능 로깅을 구현 한 MVC 컨트롤러에

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

.

WebForms 페이지에 대해 비슷한 로깅을 구현하고자합니다. 라우팅 부분에 연결하여 거기에서 로그하는 것이 가능합니까?

답변

1

System.Diagnostics.StopWatch를 사용하면 전역 수준에서 문제를 해결할 수 있습니다.

제안 된 솔루션은 다음과 같습니다.

1. 응용 프로그램에서 BeginRequest는 StopWatch의 새 인스턴스를 인스턴스화합니다.
2. stop watch 인스턴스에서 start 메소드를 호출하십시오.
3. HttpContext.Current.Items 컬렉션에 중지 시계를 놓습니다.
4. 응용 프로그램의 End Request에서 httpcontext 항목에서 StopWatch 인스턴스를 가져 와서 stop 메서드를 호출하고 선택한 "Elapsed"속성을 사용합니다 저장하고자하는 시간 데이터를 얻으려면

이렇게하면 모든 요청, mvc 및 webforms의 처리 시간을 측정 할 수있는 단일 장소가 제공됩니다.