MVC Application_BeginRequest localhost重定向了你太多次了

时间:2018-04-09 14:55:20

标签: c# asp.net-mvc

我正在尝试实施"维护模式"进入我的申请。我的想法是" RedirectToRoute"当检测到。但是,我得到以下例外:

  

" localhost重定向了你太多次"

我查看了各种在线解决方案,但都没有工作。任何帮助表示赞赏。

GLOBAL ASAX:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    var inMaintenanceMode = false;

    bool.TryParse(ConfigurationManager.AppSettings[Settings.Application.Modes.MaintenanceMode], out inMaintenanceMode);
    if (inMaintenanceMode)
    {
        Response.RedirectToRoute("Default", new { controller = "Maintenance", action = "Index" });
        Response.End();
        return;
    }
}

控制器:
它永远不会到达......

public class MaintenanceController : Controller
{
    // GET: Maintenance
    public ActionResult Index()
    {
        var viewModel = new MaintenanceIndexViewModel();

        // Forces a new Session_Start attempt
        Session.Abandon();

        return View(viewModel);
    } 
}

1 个答案:

答案 0 :(得分:3)

要避免无限重定向循环,您可以在Application_BeginRequest方法中添加额外的检查,以确定当前路由是Maintenance控制器,如果是,请跳过重定向,因为您已经重定向到它先前的请求。