출처 : HOONs 닷넷
ASP.NET 에서의 에러처리를 다루어 봅시다.
에러처리
web.config를 이용한 에러처리
기본적으로 에러가 발생했을 경우 redirect 페이지를 설정합니다.
400,500번대의 에러를 statecode로 정의 할 수 있습니다.
[ 소스코드]
"RemoteOnly" defaultRedirect="Error.aspx"> statusCode가 정의 되어있으면 정의된 곳으로 아니면 기본적으로 defaultRedirect를 향합니다."404" redirect="not_found.aspx" />
global.asax 에서의 에러처리
에러가 발생했을때의 페이지 이동은 간단히 web.config를 이용하면 됩니다.하지만
좀더 자세하게 에러 내용을 보고 싶다던지 그에 관한 상세적인 내용을 다루기 위해서는
global.asax를 이용하면 편리합니다.
[ Application_Error]
protected void Application_Error(Object sender, EventArgs e) { Exception LastError = Server.GetLastError(); string errMsg = LastError.ToString(); string errSource = "source : "+LastError.Source; string errTrack = "
track : "+LastError.StackTrace; string errMsg = "
Message : "+LastError.Message; string errTarget = "
Target : "+LastError.TargetSite; string logName = "ddarangLog"; string Message = "URL :" + Request.Path + "
Error : " + errMsg; //윈도우즈 이벤트로그에 작성하기
if(!EventLog.Exists(logName)) { EventLog.CreateEventSource(logName,logName); } EventLog Log = new EventLog(); Log.Source = logName; Log.WriteEntry(Message, EventLogEntryType.Information, 1); Log.WriteEntry(Message, EventLogEntryType.Error, 2); Log.WriteEntry(Message, EventLogEntryType.Warning, 3); Log.WriteEntry(Message, EventLogEntryType.SuccessAudit, 4); Log.WriteEntry(Message, EventLogEntryType.FailureAudit, 5); //운영자에게 에러메일발송 ddarangUtil.SendMail("에러발생",Message,"1",Mailip); }
trace에 관하여
trace를 활성하하면 응용 프로그램 내의 모든 페이제에 대한 추적 로그 출력이 가능합니다.
페이지 단위로 할 수도 있구 전체 프로젝트에 적용시킬 수도 있습니다.
페이지 단위는 페이지 지시자에 trace="true"를 추가시킵니다.
모든 페이지 단위는 web.config를 이용합니다.
[ 소스코드]
"false" requestLimit="10" pageOutput="true" traceMode="SortByTime" localOnly="false" /> enabled 항목을 "true"로 설정하면 루트디렉토리에 trace.axd 파일이 생성됩니다. 이 파일은 xml로 구성이 되어져 있어서 브라우져에서 바로 확인이 가능합니다. ex) http://localhost/ddarant/trace.axd
반응형
'IT-개발,DB' 카테고리의 다른 글
[개발] ASP.NET 파일 업로드 하기 (0) | 2010.11.05 |
---|---|
[개발] DataGrid 기본 페이저 모양 변경 방법 (0) | 2010.11.05 |
[개발] ASP.NET 닷넷 에디터 게시판 사용하기 (0) | 2010.11.05 |
[개발] ASP에서 ActiveX DLL 사용하기 (0) | 2010.11.04 |
[개발] [asp.net]RenderControl을 이용한 엑셀로 저장 (0) | 2010.11.04 |
댓글