Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite
Fiz meu primeiro projeto .Net Core, e está tudo funcionando que é uma belezinha.
Porém, ao publicar a aplicação no IIS, não estou conseguindo conectar no banco de dados. As páginas que não possuem conexão funcionam.
Quando publiquei, ele gerou três arquivos json de configuração: appsettings.json, appsettings.Development.json e appsettings.production.json, e dentro de cada um dele, tem a conexão que eu criei e ele inseriu mais uma:
"ConnectionStrings": {
"HoleriteContext": "Server=DESKTOP-DGCC9GF\\SQLEXPRESS;Database=HOLERITES;Trusted_Connection=True;MultipleActiveResultSets=true;user id=sa;pwd=123;",
"prjHoleriteContextConnection": "Server=(localdb)\\mssqllocaldb;Database=prjHolerite;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Eu tentei copiar a string de conexão de HoleritesContext para prjHoleriteContextConnection, mas não deu em nada.
Meu banco já está configurado para aceitar conexões TCP. E o erro está dando tanto na minha máquina local quanto no servidor do cliente.
Não consegui encontrar algum tutorial que fale sobre essa parte, então alguém pode me auxiliar onde estou errando?
Obrigado.
Gabriel, bom dia.
Obrigado, tudo isso está feito.
Eu acabei não retornando, mas já resolvi o problema. Não sei se isso é padrão do .net, mas quando gerei o app, ele não estava usando o usuário SA para se conectar a base, e sim o usuário do IIS APPPOOL\NetCore. Então eu resolvi dando permissão para esse usuário na base de dados.
Se isso é o comportamento padrão, mas tem como contornar isso e usar o usuário informado, você pode me orientar como, por favor? O sistema já está em funcionamento, mas fica como conhecimento para uma próxima vez.
Brigadão.
Você está utilizando o Entity Framework Core, ou alguma outro framework?
No Startup.cs, você precisa utilizar a configuração do appsettings.json. A connection string deve ser adicionada explicitamente na conexão. Seu Startup.cs vai ficar mais ou menos assim:
public class Startup
{
-
O código acima é para .NET Core usando EF Core;
-
AppDbContext é a classe de contexto (especialização de Microsoft.EntityFrameworkCore.DbContext);
-
É necessária a dependência do package Microsoft.EntityFrameworkCore.SqlServer.
O ponto central das configurations strings, é que você poderá recuperar elas utilizando o diretamente o código abaixo:
configuration.GetConnectionString("DefaultConnection")
Aonde DefaultConnection é a chave que você definiu, no seu caso, pode ser uma das duas chaves que você definiu:
configuration.GetConnectionString("HoleriteContext")
ou
configuration.GetConnectionString("prjHoleriteContextConnection")