2016-10-28 17 views
1

Azure Web Appでは、web.config AppSettingsセクションを簡単に上書きすることができます。例えば。私は、次のweb.configファイルがある場合:Azure Web Appのカ​​スタムセクションでweb.configの値を上書きする方法は?

<appSettings> 
    <add key="AllowedCORSOrigin" value="http://localhost:26674"/> 
</appSettings> 

を私はそのようなポータルでアプリの設定のUIで、それを上書きすることができます。

enter image description here

私はまた、ウェブでのカスタムセクションを持っています。 config:

<AdWordsApi> 
    <add key="OAuth2RefreshToken" value="TOKEN" /> 
</AdWordsApi> 

何とかオーバーライドすることはできますか?私はAdWordsApi.OAuth2RefreshTokenAdWordsApi:OAuth2RefreshTokenを試しましたが、それは簡単には機能しません。

P.S.たとえば、サーバー上に別の認証モードが必要な場合など、他のカスタムセクションで可能かどうかを知ることは面白いです。

<system.web> 
    <authentication mode="None" /> 
</system.web> 

答えて

2

短い答えは可能ではないということです。

説明するメカニズムは、App SettingsとConnection Stringsでのみ機能します。ハイ・レベルは、それが動作する方法は次のとおりです。

  • あなたのAzureアプリケーションの設定となって環境変数を実行時に
  • は、特別なモジュールは、.NETの設定システムで動的にそれらを設定します。物理的なweb.configは決して変更されないことに注意してください。

しかし、物理ファイルを変更しなければ動的に影響を受けないので、このようなメカニズムを任意の設定セクションで実行することは難しいでしょう。

+0

問題の解決策はありますか? web.configを公開せず(Azureで直接変更する)、またはweb.config変換を使用していますか?私の知る限り、ABC構文のASP.NETコアではうまく動作しますが、単純なjson設定があります:) –

+0

gitを使用して公開している場合は、Webでトークンの置換を行うビルドステップがあると考えられます。設定ファイル。これは、設定を変更したときに再配布する必要があることを意味しますが、少なくとも秘密はAzureに限ります。 –

+0

ありがとうございます。ありがとうございました。私はそれがASPのためにサポートされているのは間違いありません。この方法で設定の値を上書きできますか? –

1

あなたがローカルで実行しているかのAzureにデプロイされているかどうかに応じて設定を変更するには、Visual Studioの使用web.configファイル変換を使用している場合:簡単に言えば

How to Transform Web.config

を使用すると、1つ以上を作成より多くのビルド構成(通常はDebug &リリース)。 Visual Studioソリューションで既存のweb.configファイルを右クリックして"Add Config Transform"をクリックするとWeb.Debug.ConfigWeb.Release.Configというファイルが作成され、環境に応じてカスタマイズすることができます。これをAzureビルド設定とリンクすると、ローカル展開とリモート展開の設定を自由に組み合わせることができます。

+0

このようにすることは可能ですが、私はAzureに入れたいと思うような秘密のものがいくつかあります。したがって、このソリューションが機能している間は、できる限りポータルからAzure環境変数を使用することをお勧めします。それでも答えはありがとう –

関連する問題