web.config 转换语法面向 XML 格式的数据。新配置包含一些 JSON 格式的文件,可以非常轻松地实现暂存场景。
首先,ASP.NET 支持通过使用ASPNET_ENV 环境变量或在launchSettings.json 文件中设置Hosting:Environment 来设置目标环境(请参阅项目的Properties 文件夹)。 launchSettings.json 文件可以在 Visual Studio 的项目属性中进行修改。应该首先选择“个人资料”
并为每个配置文件进行设置。或者,您可以手动编辑文件Properties\launchSettings.json。
一些配置文件,如hosting.json 使用暂存自动运行。因此,您可以通过在hosting.json 和hosting.Development.json 中指定server.urls 来设置不同的端口和不同的接口绑定。
要在appsettings.json 中包含暂存逻辑,需要修改Startup.cs 中Startup 类的构造函数。例如:
public class Startup
{
public static IConfigurationRoot Configuration { get; set; }
public Startup(IHostingEnvironment env)
{
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver();
});
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyContext>(options => {
options.UseSqlServer(Configuration["Data:ConnectionString"]);
})
.AddDbContext<SM9Context>(options => {
options.UseSqlServer(Configuration["Data:SM9ConnectionString"]);
});
}
}
上述代码将配置保存在Configuration属性中,然后使用ConfigureServices注入MyContext和SM9Context数据库上下文。例如,可以使用所有生产配置创建主 appsettings.json 文件并创建仅覆盖 一个(来自两个 Data:ConnectionString 和 Data:SM9ConnectionString)连接字符串的 appsettings.Development.json 文件:
{
"Data": {
"ConnectionString": "Server=..."
}
}
ASP.NET 将结合两个文件 appsettings.json 和可选的 appsettings.Development.json 来创建完整的配置参数集。
The article 和 the part 的文档描述了如何在 ASP.NET 5 中使用暂存功能。