25

以前のバージョンの ASP.NET では、多くの人が次のようなWeb.Debug.config/ファイル変換を使用していました。Web.Release.config

Web.config :

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(LocalDb)\\..." />
</connectionStrings>

Web.Release.config :

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(ReleaseDb)\\..."  xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

ASP.NET vNext チュートリアルに従って、Web.config を引き続き使用できます。ただしconfig.json、同じ記事によると、構成を処理する新しい方法のようです。

config.json

{
    "Data": {
        "DefaultConnection": { 
            "ConnectionString": "Server=(localdb)\\..."
        }
    }
}

そしてStartup.csで:

var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();

それで、このjsonへの移行で構成変換を処理するための推奨される方法は何でしょうか?

4

3 に答える 3

2

既定では、ASP.NET は "ASPNET_ENV" という名前の環境変数をチェックして、IHostingEnvironment の EnvironmentName 変数を設定します。

関連するコードは次のとおりです。

https://github.com/aspnet/Hosting/blob/77e2dc263f11655312d4c73bb8e22d7b6254d485/src/Microsoft.AspNet.Hosting/HostingFactory.cs

さまざまな環境のサーバーで ASPNET_ENV の値を変更すると、次のようなことができます。

var configuration = new Configuration()
            .AddJsonFile("config.json")
            .AddEnvironmentVariables();
if (string.Equals(env.EnvironmentName, "Prod", StringComparison.OrdinalIgnoreCase))
{
            configuration.AddJsonFile("prod.config.json");
}
于 2015-04-07T03:05:36.730 に答える