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)become public ActionResult Index().

Cassini ではすべてがうまく機能します (VS 2012 でデバッグするときは、ローカル ホスティングと呼ばれていると思います)。ただし、Web サーバーにデプロイすると、無限にロードされます。

何か案は?

編集: /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 メソッドが何かを無限に実行するか、無限に同じルートにリダイレクトするか、数分かかる DB 選択のように長時間実行される外部呼び出しを同期的に実行する可能性があります。

それを基本的なケースに分解し、Index メソッドに "Hello World" という View を返すだけにして、そこから先に進みます。

于 2013-06-06T15:53:35.380 に答える