ASP.NET 모바일 웹 페이지의 각 장치에 대해 최적화된 오류 보고 관리
업데이트: 2007년 11월
ASP.NET 페이지를 처리하는 동안 오류는 예외로 throw되고 ASP.NET 오류 처리 메커니즘을 통해 처리됩니다.
이 단원에서는 ASP.NET의 오류 보고에 대해 간략히 설명하고 이 기능과 모바일 웹 페이지가 포함된 ASP.NET 응용 프로그램 간의 관계를 설명합니다.
ASP.NET 오류 보고 개요
요청 중에는 다음과 같은 여러 가지 형식의 오류가 발생할 수 있습니다.
없는 파일에 대한 요청과 같은 HTTP 내부 오류
페이지, 사용자 정의 컨트롤 또는 이와 유사한 파일을 어셈블리에 컴파일하는 동안 발생하는 구문 분석 오류
웹 페이지의 수명 기간 동안 ASP.NET 내에서 해당 페이지를 실행할 때 발생하는 오류
구성 파일 읽기 오류
메모리 부족 같은 시스템 오류
ASP.NET에서는 오류 보고를 사용자 지정할 수 있는 몇 가지 기능을 제공합니다.
오류 보고 모드
개발자가 참조할 수 있는 정보가 포함된 자세한 오류, 일반 사용자에게 표시할 기본 오류 또는 사용자 지정 오류를 표시하도록 응용 프로그램을 구성할 수 있습니다. 클라이언트가 로컬 컴퓨터인 경우에만 자세한 오류를 표시하도록 설정을 조정할 수 있습니다.
응용 프로그램 수준 오류
요청을 수행하는 동안 오류가 발생하면 ASP.NET은 Application_Error 이벤트를 발생시킵니다. Global.asax 파일의 메서드로 이 이벤트를 처리하고 오류 처리 동작을 재정의할 수 있습니다.
페이지 수준 오류
페이지의 수명 기간 동안 오류가 발생하면 Page_Error 이벤트가 발생합니다. 이 이벤트에 대한 처리기는 오류에 따라 알림 작업을 수행하거나 오류를 표시하지 않는 등의 정정 작업을 시도할 수 있습니다.
사용자 지정 오류
Web.config 파일에서는 ASP.NET 응용 프로그램 내에서 예외가 발생할 경우 표시할 사용자 지정 페이지 집합을 지정할 수 있습니다. 오류가 발생하면 ASP.NET은 응용 프로그램이 사용자 지정 오류를 표시하도록 구성되어 있는지 그리고 적절한 오류 페이지가 있는지 확인합니다. 이 두 조건 중 하나라도 참이면 ASP.NET은 오류 페이지로 리디렉션되고, 원래 URL이 포함된 매개 변수를 전달합니다.
모바일 웹 응용 프로그램의 각 장치에 대해 최적화된 오류 보고 개요
모바일 웹 페이지에서는 다른 ASP.NET 응용 프로그램에서와 같은 방식으로 오류가 보고되며 동일한 사용자 지정 기술을 사용할 수 있습니다. 그러나 몇 가지 차이점도 있으므로 모바일 웹 페이지의 오류 보고 기능을 장치에 맞게 최적화할 수 있습니다.
장치별 서식 지정
오류 메시지는 대상 장치의 태그에 맞게 자동으로 서식이 지정됩니다. WML 장치의 경우에는 카드 데크(deck) 서식으로 지정되고 HTML 장치의 경우에는 HTML 페이지 서식으로 지정됩니다.
참고: |
---|
사용자 지정 오류 페이지를 작성할 경우에는 해당 페이지가 각 장치 종류에 올바른 서식으로 지정되도록 ASP.NET 모바일 웹 페이지로 작성하는 것이 좋습니다. |
제한된 기본 오류 메시지 내용
모든 모바일 장치의 기본 제공 오류 메시지는 응용 프로그램이 자세한 메시지를 표시하도록 구성되어 있더라도 간단하게 표시됩니다. 일반적으로 오류 메시지에는 발생한 예외 형식 및 예외를 발생시킨 메서드가 포함됩니다. 클라이언트가 데스크톱 브라우저인 경우에는 표준 오류 메시지가 렌더링됩니다.
HTTP 응답 코드
ASP.NET에서는 예외를 보고할 때 오류의 특성을 반영하도록 HTTP 응답 코드를 설정합니다. 브라우저는 응답 코드를 기준으로 동작하거나 응답 본문에 포함된 오류 세부 정보를 표시할 수 있습니다. 그러나 WML 기반 전화기와 같은 일부 모바일 장치에서는 오류가 있는 경우에만 응답 코드가 표시됩니다. 이러한 장치에서 오류가 발생하면 해당 요청에 대해 성공을 나타내는 HTTP 응답 코드 200이 반환되지만 페이지 본문에는 오류 메시지가 포함됩니다. HTML 장치에서는 요청에 대해 실제 오류 코드가 반환되므로 브라우저에서 그에 따라 적절하게 응답할 수 있습니다.
각 장치에 대해 최적화된 오류 보고 프로세스
모바일 웹 페이지의 경우 ASP.NET에서는 다음 과정을 통해 오류를 찾아 보고합니다.
응용 프로그램 수준 오류가 발생한 경우 ErrorHandlerModule 형식의 HTTP 모듈에서 오류를 처리합니다. 이 모듈은 자동으로 설치됩니다.
페이지가 실행되는 동안 페이지 수준에서 예외가 발생하면 ASP.NET은 해당 페이지의 OnError 메서드를 호출합니다. 이 경우 페이지는 모바일 페이지이므로 MobilePage의 재정의 구현이 호출된 후, 지정된 페이지 어댑터의 HandleError 메서드가 호출됩니다. 이 어댑터 메서드는 오류를 자세하게 보고한 다음 오류가 처리되었음을 나타내는 값을 반환할 수 있습니다. 이렇게 하지 않으면 예외 처리가 계속 진행됩니다. ASP.NET에서 사용자 지정 오류 페이지를 자동으로 사용합니다.
ASP.NET은 1단계에서 오류 처리기를 호출합니다. 대상 장치가 ASP.NET에서 생성된 전체 오류 메시지를 렌더링할 수 있는 HTML 브라우저인 경우에는 해당 메서드가 종료됩니다.
그렇지 않으면 ASP.NET은 예외에 대한 정보를 수집하고 ErrorFormatterPage 형식의 내부적으로 정의된 모바일 페이지에 대해 인스턴스를 만든 다음 해당 데이터를 수집된 데이터에 바인딩하고 결과를 렌더링합니다. 이 페이지는 장치별 오류 메시지를 생성합니다. 예외가 처리되었으므로 이벤트 메서드는 HTTP 오류 상태 코드를 반환하지 않습니다.