MVC application_startlocalhost重定向你太多次

本文关键字:太多 重定向 startlocalhost application MVC | 更新日期: 2023-09-27 18:03:35

我得到错误:

localhost重定向您太多次。

当我从Application_Start方法重定向到错误页面时

我的代码是这样的:

 protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
    protected void Application_Error(Object sender, EventArgs e)
    {    
        var exception = Server.GetLastError();   
        if (exception != null)
        {    
            Session["w"] = exception;
            Response.Clear();
            Server.ClearError();
            Response.Redirect("~/Admin/Error");    
        }
    }
}

MVC application_startlocalhost重定向你太多次

在这种情况下使用Session不是一个好主意。如果错误是由没有标记IRequiresSessionStateIHttpHandler触发的,那么访问会话将失败。因此,你将有一个重定向循环。

删除会话并尝试使用:

Response.Redirect(String.Format("~/Admin/Error?w={0}", exception.Message));

这个问题更可能与您上面提到的缺少favicon.ico文件引起的File Not Found错误有关。

要解决这个问题,只需在项目根目录中添加一个favicon.ico文件。

可选地,您可以更新错误处理以避免在检测到404时重定向。

protected void Application_Error(Object sender, EventArgs e)
{    
    var exception = Server.GetLastError();   
    if (exception != null && exception != 404)
    {    
        Session["w"] = exception;
        Response.Clear();
        Server.ClearError();
        Response.Redirect("~/Admin/Error");    
    }
}