2015-11-22 11 views
8

私はconfig.jsonファイルに格納されているいくつかの設定値を持つASP.Net 5アプリケーションを持っています。私のconfig.jsonファイルは次のようなものです。Azure Web Appのconfig.jsonファイルの設定値をASP.Net 5にオーバーライドします。

{ 
    "AppSettings": { 
    "SiteEmailAddress": "[email protected]", 
    "APIKey": "some_api_key" 
    } 
} 

私はこのようなStartup.csファイルで使用するconfig.jsonファイルを設定しています。以前ASP.Netで

public static IConfigurationRoot Configuration; 

public Startup(IApplicationEnvironment appEnv) { 

    var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath) 
       .AddJsonFile("config.json") 
       .AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

そして、このような設定の設定にアクセスする。..

var email = Startup.Configuration["AppSettings:SiteEmailAddress"]; 

我々は、これらのアプリケーションの設定を保存し、Azureのアプリケーションの設定]セクションでアプリの設定でそれらを上書きするWeb.Configファイルを使用することができますそれはどんな問題でも動く。しかし、どうすればASP.Net 5アプリでも同じことができます。

Azureの[App Settings]セクションで、config.jsonファイルの設定値を上書きする方法を教えてください。

答えて

19

これまでと同じように、AzureのApp Settingsとして追加します。ネストされた設定値について は、使用

AppSettings:SiteEmailAddress 

等...あなたのような

AddEnvironmentVariables()(のAppSettingsはここにあなたがあなたのconfig.jsonで使用したものを参照すると、Azureのアプリケーションの設定に類似性は偶然です)これが機能するためには完了している必要があります。

+0

ありがとうございます..作品は完全に.. –

+0

.NETコアでは 'appsettings.json'とも呼ばれます。 – silkfire

0

あなたがappsettings.jsonを持っていると仮定して、別のファイルappsettings。{Environment} .json、つまりappsettings.Production.jsonを追加することができます。プロダクションファイルで定義されている設定だけが、appsettings.jsonの設定を上書きします。 さて、スタートアップ

var builder = new ConfigurationBuilder() 
    .AddJsonFile("appsettings.json") 
    .AddJsonFile($"appsettings.{env.EnvironmentName}.json", true); 

次のコンストラクタに以下を追加し、すべてのサーバーが定義されているlaunchSettings.jsonに行くと生産に環境変数を更新する必要があります。たとえば、

"web": { 
    "commandName": "web", 
    "environmentVariables": { 
    "Hosting:Environment": "Production" 
    } 

次に、azureにデプロイします。

+0

展開するたびにHosting:Environmentを変更する必要はありませんか?これを永久にすることはできますか? – Martin

+0

launchSettings.jsonファイルの各環境に "profile"を定義する必要があります。各プロファイルには、独自の「ホスティング:環境」が必要です。つまりIIS Express =>開発、Web =>プロダクション –

+2

です。しかし、Azureが "web"プロファイルを選ぶことをどのように知っていますか? 「Azure Production」のプロフィールを持っていたらどうなりますか? – Martin

関連する問題