본문 바로가기
IT-개발,DB

[개발] ASP.NET 에서의 에러처리를 다루어 봅시다

by SB리치퍼슨 2010. 11. 5.

출처 : HOONs 닷넷

원문 : http://www.hoonsbara.com/hoonsboard.aspx?table_name=asptip&board_idx=445268&page=10&keyword=&search=&boardmode=2

 

ASP.NET 에서의 에러처리를 다루어 봅시다.

에러처리

web.config를 이용한 에러처리
기본적으로 에러가 발생했을 경우 redirect 페이지를 설정합니다.
400,500번대의 에러를 statecode로 정의 할 수 있습니다.

[ 소스코드]

"RemoteOnly" defaultRedirect="Error.aspx">
    "404" redirect="not_found.aspx" />


statusCode가 정의 되어있으면 정의된 곳으로 아니면 기본적으로 defaultRedirect를 향합니다.

 

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
 

 

 

반응형

댓글