Запускает ли Azure WebJob приложение app.config после развертывания

У меня есть веб-сайт, работающий в Azure App Services. Он имеет WebJob, который развертывается с ним и, таким образом, получает в него папку App_data после развертывания.

Если я FTP в папку wwwroot/app_data моего сайта после развертывания, файл app.config не имеет ни одного из настроенных параметров, которые я настроил в "Blade Application Settings" на портале Azure. Однако настройки меняются в моем web.config для Веб-сайта.

Самое любопытное, что при запуске WebJob вывод журнала показывает, что используются правильные настройки!

Как и в моем названии, WebJob использует файл App.Settings после развертывания или использует какую-либо копию настроек приложения на лазурном портале в памяти или использует то, что находится в Интернете .config веб-сайта?

Чтобы задать вопрос, я знаю, что app.settings переименовывается в myappname.exe.config

Ответ 1

Вот как это работает:

  • Azure не запускает ваш WebJob на месте, а вместо этого копирует его в временную папку (чтобы избежать блокировки на месте при запуске).
  • В рамках этого процесса копирования параметры приложения преобразуются во временные файлы. Поэтому вы не видите изменений в файле конфигурации.
  • Azure прослушивает изменения файлов в ваших файлах WebJob, поэтому, если вы изменяете свой файл конфигурации, Azure копирует/преобразует файлы снова и перезапускает WebJob.

Ответ 2

Марк Симан подробно останавливается на этом:

Насколько я могу судить, он пытается прочитать настройки конфигурации в этом приоритетном порядке:

1.Попробуйте найти значение конфигурации в веб-сайте > онлайн-конфигурацию (см. ниже).

2.Попробуйте найти значение конфигурации в файле .cscfg.

3. Попробуйте найти значение конфигурации в файле app.config или файле web.config.

(Прочитайте здесь все расследование: http://blog.ploeh.dk/2014/05/16/configuring-azure-web-jobs/)

Ответ 3

Ответ Дэвида Эббо совершенно прав.

Просто хочу сказать, что вы также можете выполнять веб-задания на месте с помощью параметра в settings.job:

{ 
    "is_in_place": true
}

Подробности можно найти в документах Kudu:
https://github.com/projectkudu/kudu/wiki/WebJobs#webjob-working-directory