Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 4.0 将ASP.NETMVC4站点转换为Azure_.net 4.0_Azure_Asp.net Mvc 4_Azure Web Roles - Fatal编程技术网

.net 4.0 将ASP.NETMVC4站点转换为Azure

.net 4.0 将ASP.NETMVC4站点转换为Azure,.net-4.0,azure,asp.net-mvc-4,azure-web-roles,.net 4.0,Azure,Asp.net Mvc 4,Azure Web Roles,我创建了一个ASP.NETMVC4网站,它有几个自定义路由,这些路由在~/App\u Start/RouteConfig文件中注册 public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(

我创建了一个ASP.NETMVC4网站,它有几个自定义路由,这些路由在~/App\u 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 emulator中也可以运行,但当我将其移动到Azure时,它的行为就像没有路由一样。例如,当我尝试导航到网站的根目录时,会出现一个错误,说明:

403 - Forbidden: Access is denied.

You do not have permission to view this directory or page using the credentials that you supplied.
这让我觉得路由根本不起作用,所以我尝试转到另一个页面,如(应该会将1234发送到主控制器的索引操作。但该操作给我一个404错误)

我已经对照新的ASP.Net MVC 4 Azure项目检查了我的配置,它们看起来是一样的。我也读了一遍,其中给出了一些建议,但最终没有帮助

有关于如何解决此问题的建议吗

更新


这是一个WebRole项目,正在使用.Net 4.0(我已经从4.5向下转换了)。

您是否尝试过根据本文设置默认页面

  • 将Web角色上载到Azure后,您尝试访问该应用程序,突然收到“403禁止,访问被拒绝” 错误
  • 您可以通过提供完整的url来访问页面,例如:-
  • 您的网站根级别上没有默认的.aspx页面。解决方案:-您应该做的第一件事是 检查是否已将下面的标记添加到内部的web.config文件中 是否为system.webserver标记
  • 建议检查您的


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

    一些问题:1)这是否在.NET 4.5中?目前,Microsoft Azure网站或Microsoft Azure云服务不支持.NET 4.5(Microsoft已表示这将很快实现)。2) 这是针对Windows Azure网站的功能,还是您以Web角色托管此功能?该链接似乎表明您是以web角色执行此操作的,但我只是想确定一下。@MikeWo请查看上述问题的答案并发现:您提到的文章似乎与经典ASP.Net相关,我的应用程序是ASP.Net MVC 4应用程序。我不认为这是适用的。当我遇到问题时,我正在使用MVC。请参阅第二条评论。对不起,我错过了您关于操作系统配置的评论。在将其更改为Server2008R2之后,现在一切都正常了!谢谢也适用于Windows Server 2012中的云服务
       <add value="Pages/Home.aspx"/>