2012-07-11 3 views
0

Global.asax에 전역 오류 처리기가 있고 ErrorPage.aspx라는 페이지에 예외 정보를 표시하려고합니다. asp.net 페이지 (http://msdn.microsoft.com/en-us/library/6c3yckfw.aspx)간에 정보를 전달하는 방법에 대한 Microsoft의 페이지를 읽었습니다. 나는이 중 하나가 작동합니다 생각하지 않습니다Global.asax에서 ErrorPage.aspx로 예외 정보 전달

  • QueryString을을 : 나는 예외의 길이가 QueryString을의 최대 길이를 초과 할 걱정.
  • 게시 정보 : Global.asax 페이지에는 양식 필드가 없습니다.
  • 세션 상태 : 세션 상태의 Global.asax에서 사용할 수 없습니다
  • 공공 값 :이 단지에서 .aspx 페이지와 소스 페이지에서
  • 컨트롤을 작동 생각 : Global.asax에이 asp.net 컨트롤을 가질 수 없습니다.

현재 나의 생각은 ErrorPage 개체의 인스턴스를 만들고이를 Windows 스타일 응용 프로그램에서 할 수있는 것처럼 탐색하는 것이 논리적이지만 그 작업을 수행하는 방법을 모르거나 asp.net에서 가능하다면.

궁극적으로 표준 .aspx 페이지에서 전역 오류 처리기가 포착 한 오류를 표시하는 방법을 찾고 있습니다. 어떤 제안이라도 도움이 될 것입니다.

+0

['Server.GetLastError()'] (http://msdn.microsoft.com/en-us/library/system. web.httpserverutility.getlasterror.aspx)가 도움이 될 수도 있습니다. – MilkyWayJoe

+0

@MilkyWayJoe, 이해할 수없는 이유로 Server.GetLastError()가 오류 페이지에서 호출 될 때 null을 반환합니다. – Brynne

+0

아마도 이것이'Application_Error'에서 이미 제거되고있는 것일까 요? – MilkyWayJoe

답변

1

내가 어떻게 할 것인지 :

  1. 로그 로그 파일에 스택 추적을 포함하여 예외 정보,
  2. 리디렉션 오류 코드 (일반 HTTP ErrorCode가 + 일반 '알 수없는 오류'하나 +와 함께하여 ErrorPage에 아마 응용 프로그램에 적합한 사용자 지정 오류)가 쿼리 문자열 매개 변수로 전달 된 경우
  3. 이 오류 코드에 대해 미리 정의 된 메시지를 표시합니다.

최종 사용자에게 실제 오류 메시지를 표시 할 이유가 없으므로 더 자세한 오류 정보는 무시할 수 없습니다. 디버깅 목적으로 전체 정보를 표시하려면 web.config에서 사용자 지정 오류를 해제하십시오.