내 매우 큰 웹 페이지 (50 페이지, 20.000 라인 코드)에서 예기치 않은 오류가 발생할 수있는 상황이 거의 없습니다. 올바르게 캐치하지 않습니다.Asp.net : 예기치 않은 오류 처리 - 메일을 보내고 error.aspx로 리디렉션 하시겠습니까?
내 안전 : 전자 메일 (SMTP 클래스가 이미 있으므로 메서드를 호출해야 함)을 보내고 실행되지 않은 모든 오류를 특정 사이트로 리디렉션 할 수 있습니까? (예 : Error.aspx)
내 매우 큰 웹 페이지 (50 페이지, 20.000 라인 코드)에서 예기치 않은 오류가 발생할 수있는 상황이 거의 없습니다. 올바르게 캐치하지 않습니다.Asp.net : 예기치 않은 오류 처리 - 메일을 보내고 error.aspx로 리디렉션 하시겠습니까?
내 안전 : 전자 메일 (SMTP 클래스가 이미 있으므로 메서드를 호출해야 함)을 보내고 실행되지 않은 모든 오류를 특정 사이트로 리디렉션 할 수 있습니까? (예 : Error.aspx)
가함으로써 Application_Error 방법을 생성하고이 오류를 처리 Global.asax에. 당신은 Server.GetLastError()를 사용하여 마지막 예외를 얻을 수 있습니다.
예 처리되지 않은 오류를 포착하는 사용자 정의 오류 페이지를 사용할 수 있습니다. 이 페이지에 코드를 작성하여 예외 세부 사항을 포함하는 오류를 보낼 수 있습니다. 당신에
나는 더 좋은 방법은 당신 자신의 예외 모듈과 핸들러를 작성하는 것이라고 믿습니다. 이런 식으로 뭔가.
public sealed class ErrorCapture : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
//nothing here
}
public void Init(HttpApplication context)
{
context.Error += new EventHandler(context_Error);
}
void context_Error(object sender, EventArgs e)
{
// Do your implementation like send mail
// Get Required details and use response.write for
// a good error msg display
HttpApplication Application = (HttpApplication)sender;
HttpServerUtility Server = Application.Server;
HttpResponse Response = Application.Response;
Exception error = Server.GetLastError();
if (error.GetType().Equals(typeof(HttpUnhandledException)))
error = error.InnerException;
//your stuff
Server.ClearError();//Do this
}
#endregion
}
오류 페이지로 리디렉션 할 때 customErrors를 사용하십시오.
맞춤 클래스로 메일을 보내는 경우 맞춤 asp.net 건강 모니터링 제공자를 작성하는 것이 좋습니다. 이 기사를 보시오 : http://www.tomot.de/en-us/article/6/asp.net/how-to-create-a-custom-healthmonitoring-provider-that-sends-e-mails 그것은 어떻게 할 수 있는지 보여줍니다.