我有一个在 Azure 应用服务上运行的网站。它有一个随其一起部署的 WebJob,因此部署后会被放入其 App_data 文件夹中。
如果我在部署后通过 FTP 传输到站点的 wwwroot/app_data 文件夹,则 app.config 文件中没有我在 Azure 门户的“应用程序设置刀片”中设置的任何配置设置。不过,网站的 web.config 中的设置已更改。
最奇怪的是,当我运行 WebJob 时,日志输出表明正在使用正确的设置!!
因此,根据我的标题,WebJob 在部署后是否使用 App.Settings 文件,或者是否使用来自 azure 门户的应用程序设置的某种内存中副本,或者是否使用 web.config 中的内容网站的?
为了预先解决一个可能的问题,我知道 app.settings 已重命名为 myappname.exe.config
其工作原理如下:
Mark Seeman 对此进行了详细阐述:
据我所知,它尝试按以下优先顺序读取配置设置:
尝试在网站的>在线配置中找到配置值(见下文)。
尝试在.cscfg文件中查找配置值。
尝试在app.config文件或web.config文件中查找配置值。
David Ebbo 的回答完全正确。
只是想说明,您还可以通过使用 settings.job 中的参数来就地运行 Web 作业:
{
"is_in_place": true
}
详细信息可以在 Kudu 文档中找到:
https://github.com/projectkudu/kudu/wiki/WebJobs#webjob-working-directory