none
WebApi MVC - Erro 404 ao executar migration RRS feed

  • Pergunta

  • Olá

    Estou executando o tutorial do seguinte link:

    https://azure.microsoft.com/pt-br/documentation/articles/web-sites-dotnet-rest-service-aspnet-api-sql-database/

    Consigo rodar a aplicação normalmente até o momento em que vou adicionar suporte a migrations

    Consigo criar o migration inicial, consigo executar o comando update-database sem erros, mas quando tento executar a aplicação obtenho o erro 404.

    Alguém poderia me ajudar ?

    sexta-feira, 26 de agosto de 2016 15:50

Respostas

  • Eric,

    Olhei o código aqui e está dando 404 porque você tirou a action Index do "HomeController". Dessa forma, como o padrão do seu RouteConfig é chamar o Controller Home e a action "Index" aí está dando 404.

    Verifiquei também que você alterou o HomeController que herdava de Controller, agora herda de ApiController e dessa forma você não vai conseguir adicionar a action Index lá.

    Eu recomendo que crie um novo controller para trabalhar com as APIs (caso queira manter essa página inicial).

    Aí você deixaria o HomeController como um controller normal mesmo, chamando as Views, etc...e criaria um outro controller para trabalhar com a api.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 26 de agosto de 2016 19:10

Todas as Respostas

  • Olá Eric,

    Tem que ser mais específico..em qual tela dá 404? Está ciente que uma Web API pura não tem View?  Portanto não mostra nada na tela


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 26 de agosto de 2016 16:36
  • Olá André Secco,

    Obrigado por responder

    O tutorial acima usa o template do Visual Studio, no mesmo tenho a View/Home/Index.cshtml e tenho o HomeController, que quando executo logo após criar o projeto , roda normalmente, aparece a página padrão. 

    Criei o Model Contacts, e um novo HomeController (gerado automaticamente) referenciando o Model Contacts, da forma especificada no tutorial acima, até o momento se eu executar o projeto, ele roda normalmente.

    Então no Package Manager Console executo

    enable-migrations -ContextTypeName Teste.Models.TesteContext
    add-migration Initial
    update-database

    Após isso o erro 404 apareceu ao tentar executar, e por ser um erro genérico não tenho ideia de como resolver, no output não aparece nenhuma mensagem que me ajude.

    A única coisa que fiz diferente do tutorial na última tentativa foi que nomeei o projeto como "Teste", pois já havia tentando fazer exatamente com o mesmo nome e tinha acontecido o mesmo erro, então criei um novo projeto com nome teste e a cada passo eu fiquei testando se o projeto executava normal.

    Postei o código no github caso possa conferir

    https://github.com/ericduarte/testewebapi


    • Editado Eric Duarte sexta-feira, 26 de agosto de 2016 18:10
    sexta-feira, 26 de agosto de 2016 18:09
  • Eric,

    Olhei o código aqui e está dando 404 porque você tirou a action Index do "HomeController". Dessa forma, como o padrão do seu RouteConfig é chamar o Controller Home e a action "Index" aí está dando 404.

    Verifiquei também que você alterou o HomeController que herdava de Controller, agora herda de ApiController e dessa forma você não vai conseguir adicionar a action Index lá.

    Eu recomendo que crie um novo controller para trabalhar com as APIs (caso queira manter essa página inicial).

    Aí você deixaria o HomeController como um controller normal mesmo, chamando as Views, etc...e criaria um outro controller para trabalhar com a api.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    sexta-feira, 26 de agosto de 2016 19:10
  • Olá André

    Realmente era isso...

    Eu ainda cometi um outro equivoco, pois quando tentei digitar a url do HomeController eu coloquei apenas
    localhost:porta/Home que direcionaria para o controller normal que eu substitui, no caso se tivesse colocado
    localhost:porta/api/Home teria retornado os resultado e eu teria identificado o motivo.

    Muito Obrigado.

    sábado, 27 de agosto de 2016 23:33