Asp.net web api IIS更改WebApi连接字符串

Asp.net web api IIS更改WebApi连接字符串,asp.net-web-api,iis-7.5,connection-string,entity-framework-core,.net-core,Asp.net Web Api,Iis 7.5,Connection String,Entity Framework Core,.net Core,我们正在为我们的最新产品之一使用webApi,该产品托管在IIS7.5上,并以ASP.NET5(.Net Core)编写 在早期的web应用程序中,可以在windows资源管理器中更改web.config中的连接字符串,并且在IIS上运行的网站使用web.config文件中的连接字符串 对于现代WebAPI(我有ConnectionString insiteappsettings.json)来说,这仍然是可能的吗?我没有在IIS或文件资源管理器中找到解决方案,使用环境变量不符合我们的需要 我们需

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

在早期的web应用程序中,可以在windows资源管理器中更改
web.config
中的连接字符串,并且在IIS上运行的网站使用
web.config
文件中的连接字符串

对于现代WebAPI(我有ConnectionString insite
appsettings.json
)来说,这仍然是可能的吗?我没有在IIS或文件资源管理器中找到解决方案,使用环境变量不符合我们的需要

我们需要在多个DB实例之间切换,因此非常欢迎基于文件的解决方案


PS:我们首先使用EntityFrameworkCore(又名EF7)数据库,因为它是我们当前数据库之上的一个新工具。

您可以使用一个配置源(包括JSON,通过包
Microsoft.Extensions.configuration.JSON
中的
AddJsonFile()
访问)读取设置文件,然后使用从中读取的值来配置EF

示例代码可能如下所示:

公共启动(IHostingEnvironment环境)
{
var builder=new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile(“appsettings.json”);
Configuration=builder.Build();
}
公共IConfigurationRoot配置{get;}
public void配置服务(IServiceCollection服务)
{
services.AddDbContext(选项=>
options.UseSqlServer(Configuration.GetConnectionString(“DefaultConnection”));
}

有关更多信息,请参阅或。

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

示例代码可能如下所示:

公共启动(IHostingEnvironment环境)
{
var builder=new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile(“appsettings.json”);
Configuration=builder.Build();
}
公共IConfigurationRoot配置{get;}
public void配置服务(IServiceCollection服务)
{
services.AddDbContext(选项=>
options.UseSqlServer(Configuration.GetConnectionString(“DefaultConnection”));
}

有关更多信息,请参阅或。

谢谢你,斯维克!配置
options.UseSqlServer(配置[“数据:默认连接:连接字符串])
成功了。我只需要在更改ConnectionString后重新启动IIS应用程序(或池),但这对于我们的测试环境来说是非常好的,因为我们不会经常更改:-)谢谢svick!配置
options.UseSqlServer(配置[“数据:默认连接:连接字符串])
成功了。在更改ConnectionString之后,我只需重新启动IIS应用程序(或池),但这对于我们的测试环境来说非常好,因为我们不会经常更改:-)