2
respostas

[Dúvida] Projeto está dando erro

Olá, tudo bem? Estou precisando de ajuda, tanto o prejeto da API quanto o de teste não estão executando como deveriam, tentei algumas coisas mais nada deu certo. Quando executo o projeto da API, o docker compose, os containers são criados, o container do SQL Server fica em execução, mas o da API é encerrado e a seguinte exceção é apresentada: Microsoft.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.

E quando tento executar os testes de integração a seguinte exceção é apresentada:

System.TypeInitializationException : The type initializer for 'Microsoft.Data.SqlClient.TdsParser' threw an exception. ---- System.TypeInitializationException : The type initializer for 'Microsoft.Data.SqlClient.SNILoadHandle' threw an exception. -------- System.DllNotFoundException : Unable to load DLL 'Microsoft.Data.SqlClient.SNI.dll' or one of its dependencies: O nome do arquivo ou a extensão é muito grande. (0x800700CE)

Por favor, se alguém puder me ajudar a resolver esse problema ficarei muito agradecida.

2 respostas

Seria bom mandar o arquivo docker-compose para visualizar aqui.

Mas, pela descrição me parece ser o caso da API ser construída primeiro, e o seu Program.cs tenta fazer uma conexão e vê que não existe um banco e joga um erro impeditivo (fechando a aplicação). Você pode fazer uma lógica para deixar executar mesmo sem conectar no banco a primeiro momento.

Eu costumo fazer meu docker-compose criar o service de database primeiro e depois o da API, e na API especificar:

https://docs.docker.com/compose/startup-order/

depends_on: database

Caso não seja essas coisas, envia aqui (só verifica antes de mandar se não tem informações sensíveis como API KEY etc): appsettings.json, docker-compose, program.cs, se estiver utilizando class library para o banco de dados manda o dbcontext do EF Core e tal.

Espero que tenha ajudado.

Olá! Gabriel, obrigada por dispor do seu tempo para me ajudar ^^

Fiz como vc sugeriu, mas continua dando erro. O projeto é exatamente o disponibilizado no início do curso e que o instrutor executa sem problemas no vídeo da aula. Link do projeto: https://github.com/alura-cursos/JornadaMilhas-API-rec