web-dev-qa-db-ja.com

Azure WebJobは、デプロイされたapp.configを確認しますか

Azure AppServicesで実行されているWebサイトがあります。一緒にデプロイされるWebJobがあるため、デプロイされるとApp_dataフォルダーに配置されます。

デプロイ後にサイトのwwwroot/app_dataフォルダーにFTPで転送すると、app.configファイルには、Azureポータルの[アプリケーション設定ブレード]で設定した構成済みの設定が含まれていません。ただし、Webサイトのweb.configで設定が変更されています。

最も興味深いのは、WebJobを実行すると、ログ出力に正しい設定が使用されていることが示されることです。

つまり、私のタイトルによると、WebJobはデプロイ後にApp.Settingsファイルを使用しますか、それともAzureポータルからのアプリ設定のメモリ内コピーを使用しますか、それともweb.configにあるものを使用しますかウェブサイト?

考えられる質問を事前に送信するために、app.settingsの名前がmyappname.exe.configに変更されることを知っています。

11

仕組みは次のとおりです。

  • AzureはWebJobをインプレースで実行しませんが、代わりに一時フォルダーにコピーします(実行時にインプレースでロックされないようにするため)。
  • このコピープロセスの一環として、アプリの設定は一時ファイルに変換されます。そのため、構成ファイルに変更が表示されません。
  • AzureはWebJobファイル内のファイルの変更をリッスンするため、構成ファイルを変更すると、Azureはファイルを再度コピー/変換し、WebJobを再起動します。
16
David Ebbo

デビッドエボの答えは完全に正しいです。

Settings.jobのパラメーターを使用して、その場でWebジョブを実行することもできることを述べたかっただけです。

{ 
    "is_in_place": true
}

詳細はKuduのドキュメントに記載されています。
https://github.com/projectkudu/kudu/wiki/WebJobs#webjob-working-directory

1
Johannes

Mark Seemanは、これについて詳しく説明しています。

私の知る限り、構成設定を次の優先順位で読み取ろうとします。

1. Webサイトの>オンライン構成で構成値を見つけてみてください(以下を参照)。

2..cscfgファイルで構成値を見つけてください。

3.app.configファイルまたはweb.configファイルで構成値を見つけてください。

(ここで調査全体を読んでください: http://blog.ploeh.dk/2014/05/16/configuring-Azure-web-jobs/

1
Indigo8