2

我的网站使用以下路线,但我需要派生一个不需要 DB 参数的新版本的网站。我删除了 DB 部分,并发布到一个新的 IIS 虚拟目录,它只加载了. 它永远不会停止加载。

这是之前的路线:

routes.MapRoute(
    "Default", // Route name
    "{db}/{controller}/{action}/{id}", // URL with parameters
    new { db = "Home", controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

这是之后:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

这是我在 Global.asax.cs 中唯一更改的内容。在我的控制器中,我从方法中删除了参数:public ActionResult Index(string db)成为public ActionResult Index().

在 Cassini 中一切正常(我认为在 VS 2012 中调试时称为本地托管)。但是,当我部署到网络服务器时,它会无限加载。

有任何想法吗?

编辑:即使我的 /Home/Index 如下,它仍然会永远加载:

    [HttpGet]
    public string Index()
    {
        return "Hello, World!";
        //var dc = BuildDC();
        //ViewBag.Title = "Log in";

        //// Check for cookie that stores Booth Number and Vendors
        //if (HttpContext.Request.Cookies["BoothNumber"] != null && HttpContext.Request.Cookies["Vendors"] != null)
        //{
        //    // We have cookie. Resume session, then.
        //    Session["BoothNumber"] = HttpContext.Request.Cookies["BoothNumber"];
        //    Session["Vendors"] = HttpContext.Request.Cookies["Vendors"];

        //    return RedirectToAction("Login", "Show");
        //}
        //else
        //{
        //    // We no have cookie. Let's do setup process, then.
        //    return RedirectToAction("Setup", "Home");
        //}
    }

重要的区别是,如果我在 VS2012 中调试,它运行良好。但是,当我部署时,它会永远加载。我也觉得这不仅仅是一个 IIS 问题,因为当我改变路线时——我打破了它。谢谢!

4

1 回答 1

2

你的路线很好。HomeController 上的 Index 方法很可能是这样的:无限地做某事,无限地重定向到相同的路由,或者像数据库选择一样同步运行长时间运行的外部调用,需要几分钟。

将其分解为基本情况,让您的 Index 方法简单地返回一个显示“Hello World”的视图,然后从那里开始。

于 2013-06-06T15:53:35.380 回答