Escolha uma Página
(Last Updated On: 27/06/2018)

As vezes o Visual Studio nos prega umas peças…

Hoje uma aplicação que sempre rodou no localhost, chamando uma base de dados MS SQL no Azure, parou de rodar.

Isso aconteceu assim que migrei a base de dados para um outro servidor SQL, fora do Azure.

Redefini a string de conexão.

No core, a string de conexão não fica no web.config, por motivos de segurança.

Ela é definida no arquivo appsettings.json, onde a conexão “ganha” um nome (como uma variável de ambiente) e é chamada no “start” da aplicação, o arquivo startup.cs.

Chamando o serviço de SQL no startup.cs

using Microsoft.EntityFrameworkCore;
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ContextoDaSuaBaseDeDados>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("SeuApelidoDaConexao")));
}

Guardando string da conexão no Appsettings.json

Para aquivos locais:

{
"ConnectionStrings": {
"SeuApelidoDaConexao": "Server=(localdb)\\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;"
},
}

Para arquivos em servidor SQL  externo:

{
 "ConnectionStrings": {
    //https://www.connectionstrings.com/sql-server/
    //http://stackoverflow.com/questions/1642483/when-using-trusted-connection-true-and-sql-server-authentication-will-this-effe
    "SeuApelidoDaConexao": "Server=NomeDOSeuServidor_sql_ou_IP;Database=NomeDoSeuBancoDeDados;User ID=usuarioDoBancoDeDados;Password=senhaDoUsuario;"
  }
}

Os links acime tem artigos que podem ajudá-lo a tirar dúvidas. São ótimos.

Algumas Dicas adicionais:

  1. Certifique-se que seu usuário tem poder de leitura e escrita no servidor SQL.
  2. O Visual Studio 2015, de alguma forma, memoriza esses dados e, mesmo trocando os dados da conexão, ele continua usando os dados da conexão anterior qwuando você está fazendo debug na máquina local. Se o banco de dados definido anteriormente não existe mais, a aplicação vai dar erro e “abrindo” os dados do erro você vai descobrir que ele está tentando fazer a conexão no endereço antigo. Varri a internet e não descobri onde “limpar” esse “cache”. A única forma que funcionou: troquei o apelido da conexão (no startup.cs e no appsettings.json). Funcionou de primeira. Então a regra é, se mudar a conexão, mude também o apelido e não fique maluco procurando erros.

Obrigado pela sua leitura. Continue visitando este blog e compartilhe artigos em sua rede de relacionamento. Por favor, se quiser, registre sugestões e comentários ao final da página.

Você quer ter uma franquia de hospedagem com tudo para marketing digital e faturamento recorrente?

franquia builderall business