Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Não Esta encontrando a lista de artistas... Sem Parametro com o servidor erro 500

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Ulysses. Como vai?

O erro HTTP 500 (Internal Server Error) é um erro genérico do lado do servidor que indica que a API encontrou uma condição inesperada que a impediu de resolver a requisição. No contexto de autenticação e autorização com o ASP.NET Core Identity, esse comportamento de "não encontrar a lista de artistas" costuma estar atrelado a três causas principais.

Vamos diagnosticar o problema por etapas para encontrar a solução:


1. Quebra no mapeamento do Banco de Dados (Migrations)

Como o projeto utiliza o Identity, a tabela de Artistas pode estar tentando fazer um relacionamento com a tabela de usuários (AspNetUsers), ou o banco de dados não foi atualizado após a inclusão das configurações de autenticação.

  • Como resolver: Abra o Console do Gerenciador de Pacotes (Package Manager Console) no Visual Studio ou o terminal na pasta do projeto e execute os comandos para garantir que o banco está sincronizado:
dotnet ef migrations add AtualizacaoIdentity
dotnet ef database update

2. Injeção de Dependência nula no Controller

Se o erro diz "Sem parâmetro com o servidor", é muito provável que o seu controller de Artistas esteja tentando utilizar o DbContext ou o UserManager do Identity, mas a dependência não foi injetada ou resolvida corretamente no arquivo Program.cs.

  • Como resolver: Verifique se o construtor do seu ArtistaController está recebendo o contexto corretamente e se ele está registrado no contêiner do ASP.NET. Exemplo:
private readonly ScreenSoundContext _context;

public ArtistaController(ScreenSoundContext context)
{
    _context = context;
}

3. Falha no Token de Autenticação (JWT ou Cookies)

Se o endpoint que lista os artistas estiver protegido com o atributo [Authorize], e a sua requisição estiver enviando um token inválido, malformado ou expirado, a API pode falhar internamente ao tentar decodificar as Claims do usuário caso o middleware não esteja bem configurado.

  • Como resolver: Para testar se o problema é na listagem ou na segurança, comente temporariamente o atributo [Authorize] em cima do método GetArtistas() e faça o teste. Se a lista aparecer, o erro 500 está na configuração do middleware de autenticação no seu Program.cs.

Como descobrir o erro exato?

Para não precisar adivinhar, ative o detalhamento de erros no console da sua API. No arquivo Program.cs, certifique-se de que a linha de página de exceção de desenvolvedor está ativa:

if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

Abra o terminal onde a API está rodando e refaça a requisição. O console do ASP.NET vai mostrar a StackTrace completa do erro 500 em letras vermelhas, apontando exatamente a linha de código e o arquivo onde a falha aconteceu.

Dê uma olhada no log do console e, se precisar de ajuda para interpretar a exceção, cole a mensagem de erro aqui no tópico para resolvermos juntos!

Espero que possa ter lhe ajudado!