将ASP.Net MVC4站点转换为Azure

时间:2012-10-14 12:18:37

标签: .net-4.0 azure asp.net-mvc-4 azure-web-roles

我创建了一个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 个答案:

答案 0 :(得分:3)

您是否尝试过根据本文http://www.sunilhaste.com/2011/04/403-forbidden-access-is-denied-error.html

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

         

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

         

我也遇到了类似的问题,并且通过将角色设置为2008 R2来修复我的问题。对链接文章的评论中有人说

  

将OS CONFIGURATION从MS SERVER 2008 SP2更改为MS SERVER 2008 R2

另请参阅以下Asp.net and Azure - Can't no longer show my web application建议您检查<modules runAllManagedModulesForAllRequests="true" />

此外,我假设您确保将MVC4文件部署到Azure。将您的RDP加入机器并检查事件日志等?