【发布时间】:2012-10-04 15:06:39
【问题描述】:
我创建了一个 ASP.Net MVC 4 网站,其中包含多个在 ~/App_Start/RouteConfig 文件中注册的自定义路由。
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 时,它的行为就像没有路线一样。例如,当我尝试导航到网站的根目录时,我收到一条错误消息:
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 项目检查了我的配置,它们似乎是相同的。我还阅读了this,它给出了一些指示,但最终没有帮助。
关于如何解决此问题的任何建议?
更新
这是一个 WebRole 项目,使用的是 .Net 4.0(我已经从 4.5 向下转换)。
【问题讨论】:
-
一些问题:1) 这是在 .NET 4.5 中吗?目前 Windows Azure 网站或 Windows Azure 云服务不支持 .NET 4.5(Microsoft 已表示这将很快发生)。 2) 这是针对 Windows Azure 网站的功能,还是以 Web 角色托管?该链接似乎表明您正在以网络角色执行此操作,但我只是想确定一下。
-
@MikeWo 请查看以上问题的答案
标签: .net-4.0 azure asp.net-mvc-4 azure-web-roles