ASP.NET Web API无法在Azure上运行

Mat*_*cic 7 asp.net-mvc azure asp.net-web-api

如果Web API在localhost上运行,为什么Web API会停止在Azure网站上运行.

错误是加载资源失败:服务器响应状态为404(未找到)您要查找的资源已被删除,名称已更改或暂时不可用.在浏览器中将URL粘贴到api时

注意: 我从未遇到过这个错误,我已经在使用Web Api属性路由的azure上有几个站点.

WebConfig

 public static void Register(HttpConfiguration config)
        {

            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
}
Run Code Online (Sandbox Code Playgroud)

RouteConfig

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");


            routes.MapRoute(
             name: "Cities",
             url: "Cities/{id}/{name}/{action}",
             defaults: new { controller = "Cities", action = "Index" }
           );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );         
        }
Run Code Online (Sandbox Code Playgroud)

Global.asax中

 AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 

            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
Run Code Online (Sandbox Code Playgroud)

Goggling透露这是一个常见问题:

在IIS 7.5中托管的Web Api中找不到HTTP 404页面

WebAPI DELETE请求在Azure中返回404错误

WebApi和ASP.NET 4路由问题

/sf/ask/1106383001/

在Windows Azure网站上为ASP.NET Web API配置IIS方法

ASP.NET v4如何处理无扩展URL

从Windows Azure网站上的WebAPI获取404

Azure中的ASP.NET MVC 4和Web API - 未找到HTTP资源

MVC 4.5 Web API路由无法正常工作?

UPDATE

在尝试上面链接中建议的每个方法后,我已从解决方案中删除了所有*.dll,创建了一个新的MVC + Web API项目并将*.dll添加到解决方案中.构建和一切都按预期工作.

Tro*_*rum 2

你尝试过这个设置吗?

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)