C# 在页中发生错误且访问被拒绝时重定向到错误页

C# 在页中发生错误且访问被拒绝时重定向到错误页,c#,asp.net,.net,runtime-error,C#,Asp.net,.net,Runtime Error,您好,我在asp.net中做我的项目,现在我有一个针对错误的每个设计页面,现在如何在页面加载发生错误时自动重定向到错误页面 并找到该页的错误代码 这些错误类似于404403400500错误代码您可以使用Global.asax并使用其中的应用程序错误方法处理异常和重定向。以下是我正在做的: protected void Application_Error(object sender, EventArgs e) { Exception ex = Context.Erro

您好,我在asp.net中做我的项目,现在我有一个针对错误的每个设计页面,现在如何在页面加载发生错误时自动重定向到错误页面 并找到该页的错误代码


这些错误类似于404403400500错误代码

您可以使用
Global.asax
并使用其中的应用程序错误方法处理异常和重定向。以下是我正在做的:

   protected void Application_Error(object sender, EventArgs e)
    {
        Exception ex = Context.Error;

        if (ex is HttpUnhandledException)
        {
            ex = Context.Error.InnerException;
        }

        if (ex.GetType().Name == "FileNotFoundException")
        {
            //ignore
        }
        else
        {
            try
            {
                if ((ex as HttpException).GetHttpCode() == 404)
                {
                    // Page Not found, redirect
                    if (!ex.Message.Contains("error.aspx"))
                    {
                        Response.Status = "301 Moved Permanently";
                        Response.AddHeader("Location", "~/error.aspx");
                        Response.End();
                    }

                }
            }
            catch (Exception ThrownException)
            {
              //log
            }
        }
    }

使用以下代码添加global.asax页面

protected void Application_Error(Object sender, EventArgs e)
{
    HttpException ex = (HttpException)Server.GetLastError();
    int httpCode = ex.GetHttpCode();
    if (httpCode == 404)
    {
        //do 404 code work here
    }
    if (httpCode == ???)
    {
        //do ??? code work here
    }
}