global中拦截404错误的实现方法

时间:2023-01-25 02:18:43

1.

    void Application_Error(object sender, EventArgs e)
{
if(Context != null)
{
HttpContext ctx = HttpContext.Current;
Exception ex = ctx.Server.GetLastError();
HttpException ev = ex as HttpException;
if(ev!= null)
{
if(ev.GetHttpCode() == )
{
ctx.ClearError();
Response.Redirect("~/nofound.aspx", false);
Response.End();
}
else
{
Server.Transfer("~/Error.aspx", false);
}
}
}
}

2.

        //全站 Error 处理
protected void Application_Error()
{
//获取关于当前请求的 HTTP 特定信息。
if (Context != null)
{
Exception ex = HttpContext.Current.Server.GetLastError() as Exception;
//HttpException ex = Context.Server.GetLastError() as HttpException;
if (ex != null)
{
//
if (ex is HttpException)
{
HttpException hEx = ex as HttpException;
if (hEx.GetHttpCode() == )
{
Context.ClearError();
Context.Response.Redirect("~/RouteOne/NotFind/?from=" + Context.Request.UrlReferrer);
Context.Response.End();
}
}
else
{
//服务器错误
//Context.Server.Transfer("~/RouteOne/Error/?msg=" + ex.Message);
Context.Response.Redirect("~/RouteOne/Error/?msg=" + Context.Request.UrlReferrer);
Context.Response.End();
}
}
}
}