したがって、私はmysiteでカスタムルーティングを実装しました。サイトがIISサブフォルダにある場合MVC2カスタムルーティングが中断します
routes.MapRoute(
"WithFriendlyNameOnly",
"{friendlyName}",
new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
new { friendlyName = new MustBeFriendlyName() }
);
routes.MapRoute(
"WithFriendlyNameDefault",
"{friendlyName}/{controller}",
new { controller = "Home", action = "Index", friendlyName = String.Empty, id = UrlParameter.Optional },
new { friendlyName = new MustBeFriendlyName() }
);
routes.MapRoute(
"WithFriendlyName",
"{friendlyName}/{controller}/{action}/{id}",
new { controller = "Home", action = "Redirect", friendlyName = String.Empty, id = UrlParameter.Optional },
new { friendlyName = new MustBeFriendlyName() }
);
routes.MapRoute(
"DefaultWithRule", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { controller = new MustNotRequireFriendlyName() }
);
これはローカルで正常に動作します。私はサイトのサイトであなたのコンテキストを決定するためにフレンドリーな名前を使用しています。それがなければ、私があなたに与えるのは404ページです。
私のテスト環境はWindows 2008 Server(IIS 7.5)で、私のアプリケーションはtest.mydomain.com/mysiteのようなサブフォルダにあります。この新しいカスタムURLを作成するまではすべてうまくいきましたので、IISまたはサーバーではないことは間違いありません。しかし、私のカスタムルートはまったく動いていません。私の通常のルートは、ホームページやいくつかの情報ページなどのようにうまく機能しています。私のカスタムルーティングがあるページだけです。私は何を間違えたのですか?