Sto utilizzando la seguente stringa di connessione (dall'opzione "Mostra stringhe di connessione al database" nel portale di Azure ") per connettersi a un database SQL di Azure;
services.AddDbContext<PwttContext>(options => options.UseSqlServer("Server=tcp:<serverName>.database.windows.net,1433;Initial Catalog=<databaseName>;Persist Security Info=False;User ID=<userId@organisation.com>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication='Active Directory Password';"));
Tuttavia quando eseguo un Update-Database
nella console di Package Manager ottengo il seguente errore;
System.ArgumentException: Keyword not supported: 'authentication'
Ho provato Authentication=""Active Directory Password""
e Authentication="\Active Directory Password\"
per evitare i caratteri di citazione senza successo.
Se rimuovo la parola chiave di Authentication
e valore e uso;
services.AddDbContext<PwttContext>(options => options.UseSqlServer("Server=tcp:<serverName>.database.windows.net,1433;Initial Catalog=<databaseName>;Persist Security Info=False;User ID=<userId@organisation.com>;Password=<password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;"));
Quindi ottengo l'errore System.Data.SqlClient.SqlException (0x80131904): Cannot open server "organisation.com" requested by the login. The login failed
Utilizzare l'utente amministratore del database SQL Azure sulla seguente stringa di connessione di appsettings.json. Se non si conosce la password di amministratore, reimpostare la password utilizzando le istruzioni fornite in questo articolo.
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"Development": "Server=tcp:YourServername.database.windows.net,1433;Initial Catalog=TheNameOfTheDatabase;Persist Security Info=False;User ID=User;Password=Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
}
}
L'avvio.cs dovrebbe apparire come di seguito:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
// Add database services.
services.AddDbContext<ApplicationContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("Development")));
}
Specificare il nome del database di seguito:
ApplicationContext.cs.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("Data Source=DatabaseNameHere");
}