1
resposta

An unhandled exception occurred while processing the request.

Segui o passo a passo da aula e ao invés de abrir o swagger, abriu uma página do google chrome com a seguinte mensagem:

**An unhandled exception occurred while processing the request. InvalidOperationException: Unable to resolve service for type 'Swashbuckle.AspNetCore.Swagger.ISwaggerProvider' while attempting to Invoke middleware 'Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware'. lambda_method1(Closure , object , HttpContext , IServiceProvider )

Stack Query Cookies Headers Routing InvalidOperationException: Unable to resolve service for type 'Swashbuckle.AspNetCore.Swagger.ISwaggerProvider' while attempting to Invoke middleware 'Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware'. lambda_method1(Closure , object , HttpContext , IServiceProvider ) Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)**

1 resposta

Olá Rafaela! Tudo bem?

O erro indica que o serviço ISwaggerProvider não está sendo corretamente resolvido pelo contêiner de injeção de dependência do ASP.NET Core. E isso geralmente acontece quando o Swagger não foi configurado corretamente no seu projeto.

Vamos verificar algumas coisas para resolver esse problema:

  1. Verifique se o Swagger está corretamente instalado e configurado: no seu arquivo .csproj, você deve ter as referências para o Swagger. Certifique-se de que as bibliotecas Swashbuckle.AspNetCore e Swashbuckle.AspNetCore.SwaggerUI estão instaladas. Você pode verificar isso no NuGet Package Manager.

  2. Configuração no Program.cs ou Startup.cs: certifique-se de que você adicionou o Swagger ao serviço de injeção de dependência e configurou o middleware do Swagger corretamente. Aqui está um exemplo de como isso pode ser feito no Program.cs:

    var builder = WebApplication.CreateBuilder(args);
    
    // Adiciona o Swagger
    builder.Services.AddSwaggerGen();
    
    var app = builder.Build();
    
    // Configura o Swagger middleware
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "Minha API V1");
        c.RoutePrefix = string.Empty; // Para abrir o Swagger na raiz do site
    });
    
    // Outros middlewares
    app.UseHttpsRedirection();
    app.UseAuthorization();
    app.MapControllers();
    
    app.Run();
    
  3. Verifique o arquivo de configuração launchSettings.json: Certifique-se de que o URL de lançamento está configurado para abrir o Swagger por padrão, como você mencionou que foi feito na configuração do launchUrl.

Se após essas verificações o problema persistir, pode ser útil verificar se há algum problema específico com a versão das bibliotecas do Swagger que você está usando ou com a configuração específica do seu ambiente. Às vezes, um simples erro de digitação ou uma configuração faltando pode causar esses problemas.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software