2015-02-05 2 views
6

Я создал очень маленький проект с ASP.NET vnext с простым контроллером MVC и простым контроллером Api.ASP.Net vnext api работает на localhost, возвращает 404 на azure

На локальном хосте все работает. Если развернуть на лазурном сайте, только часть MVC работает

Вот мой project.json

{ 
    "webroot": "wwwroot", 
    "version": "1.0.0-*", 
    "exclude": [ 
     "wwwroot" 
    ], 
    "packExclude": [ 
     "node_modules", 
     "bower_components", 
     "**.kproj", 
     "**.user", 
     "**.vspscc" 
    ], 
    "dependencies": { 
     "Microsoft.AspNet.Server.IIS": "1.0.0-beta2", 
     "Microsoft.AspNet.Mvc": "6.0.0-beta2" 
    }, 
    "frameworks" : { 
     "aspnet50" : { }, 
     "aspnetcore50" : { } 
    } 
} 

Startup.cs

using Microsoft.AspNet.Builder; 
using Microsoft.Framework.DependencyInjection; 

namespace Project.Web6 
{ 
    public class Startup 
    { 
     public void ConfigureServices(IServiceCollection services) 
     { 
      services.AddMvc(); 
     } 

     public void Configure(IApplicationBuilder app) 
     { 
      // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 
      app.UseMvc(); 
     } 
    } 
} 

MVC контроллер

public class HomeController : Controller 
{ 
    // GET: /<controller>/ 
    public string Index() 
    { 
     return "Hello world"; 
    } 
} 

API-контроллер

[Route("api/[controller]")] 
public class MessagesController : Controller 
{ 
    // GET: api/values 
    [HttpGet] 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 
} 

Контроллер MVC работает отлично, но если я иду к http://myproject.azurewebsites.net/api/Messages возвращается 404

+0

Что и как вы развернули на лазурном? –

+0

, если эта ссылка помогает: https://github.com/aspnet/Home/wiki/Deploy-an-AspNet-vNext-application-to-Microsoft-Azure-websites скажите, чтобы я опубликовал ее как ответ :) – astaykov

ответ

2

Вот как я решил эту проблему:

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "default", 
     template: "{controller}/{action}/{id?}", 
     defaults: new { controller = "Home", action = "Index" }); 
}); 

Я не имею ни малейшего понятия, почему он работал на местном уровне. ..

Смежные вопросы