~/App_Start/RouteConfig ファイルに登録されているいくつかのカスタム ルートを持つ ASP.Net MVC 4 Web サイトを作成しました。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Empty",
url: "",
defaults: new { controller = "Home", action = "Index", id = 0 }
);
routes.MapRoute(
name: "Session",
url: "{id}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
このサイトは、Azure の外でもうまく機能しており、Azure エミュレーターでも機能しますが、Azure に移動すると、ルートがないように動作します。たとえば、Web サイトのルートに移動しようとすると、次のようなエラーが表示されます。
403 - Forbidden: Access is denied.
You do not have permission to view this directory or page using the credentials that you supplied.
これにより、ルートが機能していないだけだと思ったので、http://myapp.cloudapp.net/1234のような別のページに移動しようとしました(1234 をホーム コントローラーのインデックス アクションに送信する必要があります。しかし、そのアクションは私に404 エラー。
新しい ASP.Net MVC 4 Azure プロジェクトに対して構成を確認しましたが、同じように見えます。私もこれを読んで、いくつかの指針を示しましたが、最終的には役に立ちませんでした。
これをトラブルシューティングする方法について何かアドバイスはありますか?
アップデート
これは WebRole プロジェクトであり、.Net 4.0 を使用しています (既に 4.5 からダウンコンバートしています)。