IIS更改WebApi ConnectionString

时间:2016-05-26 15:07:13

标签: asp.net-web-api iis-7.5 connection-string entity-framework-core .net-core

我们正在使用webApi作为我们最新的产品之一,这些产品托管在IIS7.5上并用ASP.NET5(.Net Core)编写。

在早期的Web应用程序中,可以更改windows-Explorer中web.config中的连接字符串,而在IIS上运行的网站使用web.config文件中的ConnectionString。

现代WebAPI仍然可以(我有ConnectionString insite appsettings.json)吗?我没有在IIS或File-Explorer中找到解决方案,并且使用Environment-Variables不符合我们的需求。

我们需要在几个数据库实例之间切换,因此非常欢迎基于文件的非常轻松的解决方案。

PS:我们正在使用EntityFrameworkCore(又名EF7)Database-First,因为它是一个位于我们当前数据库之上的新工具。

1 个答案:

答案 0 :(得分:0)

您可以使用其中一个配置源(包括JSON,由AddJsonFile()包中的Microsoft.Extensions.Configuration.Json访问)来读取设置文件,然后使用从那里读取的值来配置EF。

示例代码可能如下所示:

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")));
}

有关详细信息,请参阅Configuration in ASP.NET Core docsthis answer