【问题标题】:Convert ASP.Net MVC4 site to Azure将 ASP.Net MVC4 站点转换为 Azure
【发布时间】: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


【解决方案1】:

您是否尝试过按照本文http://www.sunilhaste.com/2011/04/403-forbidden-access-is-denied-error.html设置默认页面

  1. 将 Web 角色上传到 Azure 后,尝试访问应用程序时突然收到“403-Forbidden, Access denied” 错误。
  2. 您可以通过提供完整的网址来访问页面,例如:-http://xyz.cloudapp.net/Pages/Home.aspx
  3. 您网站的根目录中没有 default.aspx 页面。解决方案:-您应该做的第一件事是 检查您是否已将以下标签添加到里面的 web.config 文件中 system.webserver 标签与否。

   <add value="Pages/Home.aspx"/>

我也遇到过类似的问题,通过将角色设置为 2008 R2 解决了我的问题。链接文章的 cmets 中有人说

将操作系统配置从 MS SERVER 2008 SP2 更改为 MS SERVER 2008 R2

另请参阅以下Asp.net and Azure - Can't no longer show my web application 建议检查您是否拥有&lt;modules runAllManagedModulesForAllRequests="true" /&gt;

另外,我假设您正在确保将 MVC4 文件部署到 Azure。您的 RDP 是否已连接到机器并检查了事件日志等?

【讨论】:

  • 您提到的文章似乎与经典的 ASP.Net 有关,我的应用程序是 ASP.Net MVC 4 应用程序。我认为这不适用。
  • 我遇到问题时正在使用 MVC。见第二条评论。
  • 抱歉,我错过了您对操作系统配置的评论。将其更改为 Server 2008 R2 后,一切正常!谢谢!
  • 也适用于 Windows Server 2012 中的云服务
猜你喜欢
  • 2013-02-05
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-14
  • 1970-01-01
  • 2015-10-26
相关资源
最近更新 更多