ASP.NET 오류 로그 및 오류 안내 페이지 쓰기
그렇다면 우리는 이런 이상과 잘못을 소홀히 할 수 있을까?
이것은 허락하지 않는 것이 분명하다.우리는 이러한 이상과 오류를 소홀히 해서는 안 될 뿐만 아니라 예상하지 못한 오류와 이상도 기록해야 한다.
그렇다면, 우리는 어떻게 이런 이상을 발견합니까?이런 이상을 발견하면 또 어떻게 기록해야 합니까?이런 이상들은 사용자에게 보여줄 수 있습니까?못 보면 어떻게 해야 하나요?
위의 의문을 해결하는 데는 로그와 오류 안내 페이지가 사용됩니다.우리는 이상과 오류를 기록해야 하며, 오류 내용을 사용자에게 보여서는 안 되며, 사용자는 우호적인 오류 안내 페이지만 있을 수 있습니다.
여기에서, 나의 오류 관리 페이지와 로그 기록은 모두 글로벌에 쓰여 있습니다.asax.cs클래스에서 Application을 통해Error 함수가 완성되었습니다.Global.asax.cs 코드:
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
string strIP = Request.UserHostAddress;
string err = "Ip【" + strIP + "】" + Environment.NewLine + "Error in
【" + Request.Url.ToString() + "】" + Environment.NewLine +
"Error Message【" + ex.Message.ToString() + "】";
//
Global.WriteError(err);
if (ex is HttpException)
{
if (((HttpException)ex).GetHttpCode() == 404)
{
Server.Transfer("ErrorPage.aspx", false);
}
}
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
#region
///
///
///
///
public static void WriteError(string errorMessage)
{
try
{
string path = "Error/" + DateTime.Today.ToString("yyyyMMdd") + ".txt";
if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath(path)))
{
File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close();
}
using (StreamWriter w = File.AppendText
(System.Web.HttpContext.Current.Server.MapPath(path)))
{
w.WriteLine("\r
Log Entry : ");
w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture));
w.WriteLine(errorMessage);
w.WriteLine("________________________________________________________");
w.Flush();
w.Close();
}
}
catch (Exception ex)
{
WriteError(ex.Message);
}
}
#endregion
}
오류 부트 페이지:ErrorPage.aspx
404-
// <!CDATA[
// ]]>
ErrorPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblMsg.Text = Application["error"].ToString() + " , 。";
Server.ClearError();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("~/Login.aspx");
}
Application_Error는 처리되지 않은 생각지도 못한 이상try를 잡기 위해...catch...또한 포지셔닝 오류의 유형과 정보를 정확하게 파악하기 위해 정확한 알림 정보를 제시해야 한다.
물론 오류 안내 페이지의 추가도 설정 파일에서 완성할 수 있습니다
총괄:글로벌.asax.cs류에는 또 다른 방법이 있습니다. 우리는 일부 방법에 개성 코드를 추가할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.