1

wir verwenden webApi für eines unserer neuesten Produkte, die auf IIS7.5 gehostet und in ASP.NET5 (.Net Core) geschrieben sind.IIS Ändern WebApi ConnectionString

In früheren Web-Anwendungen war es möglich, die Verbindungszeichenfolge im Windows-Explorer web.config zu ändern, und die auf IIS laufende Website verwendete den ConnectionString in der Datei web.config.

Ist dies immer noch für moderne WebAPIs möglich (ich habe den ConnectionString insite appsettings.json)? Ich habe keine Lösung dafür in IIS oder Datei-Explorer gefunden und die Verwendung von Umgebungsvariablen passt nicht zu unseren Bedürfnissen.

Wir müssen zwischen mehreren DB-Instanzen wechseln, so dass eine sehr leichte dateibasierte Lösung sehr willkommen wäre.

PS: Wir verwenden EntityFrameworkCore (alias EF7) Database-First, da es ein neues Tool ist, das auf unserer aktuellen Datenbank steht.

Antwort

0

Sie können eine der Konfigurationsquellen (einschließlich JSON, Zugriff von AddJsonFile() im Paket Microsoft.Extensions.Configuration.Json) verwenden, um die Einstellungsdatei zu lesen und dann die von dort gelesenen Werte zum Konfigurieren von EF zu verwenden.

Beispiel Code könnte wie folgt aussehen:

public Startup(IHostingEnvironment env) 
{ 
    var builder = new ConfigurationBuilder() 
     .SetBasePath(env.ContentRootPath) 
     .AddJsonFile("appsettings.json"); 

    Configuration = builder.Build(); 
} 

public IConfigurationRoot Configuration { get; } 

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddDbContext<MyDbContext>(options => 
     options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 
} 

Weitere Informationen Configuration in ASP.NET Core docs oder this answer sehen.

+0

Vielen Dank svick! Die Konfiguration 'options.UseSqlServer (Konfiguration [" Data: DefaultConnection: ConnectionString "])' hat den Zweck erfüllt. Ich muss nur die IIS-Anwendung (oder den Pool) neu starten, nachdem ich den ConnectionString geändert habe, aber das wäre mehr als okay für unsere Testumgebung, da wir das nicht oft ändern :-) – nicn