Azure WebJob 部署后是否查看 app.config

问题描述 投票:0回答:3

我有一个在 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

azure azure-webjobs
3个回答
20
投票

其工作原理如下:

  • Azure 不会就地运行 WebJob,而是将其复制到临时文件夹(以避免在运行时将其锁定就地)。
  • 作为此复制过程的一部分,应用程序设置会在临时文件中进行转换。这就是为什么您看不到配置文件中的更改。
  • Azure 侦听 WebJob 文件中的文件更改,因此,如果您修改配置文件,Azure 会再次复制/转换文件并重新启动 WebJob。

3
投票

Mark Seeman 对此进行了详细阐述:

据我所知,它尝试按以下优先顺序读取配置设置:

  1. 尝试在网站的>在线配置中找到配置值(见下文)。

  2. 尝试在.cscfg文件中查找配置值。

  3. 尝试在app.config文件或web.config文件中查找配置值。

在此处阅读整个调查


1
投票

David Ebbo 的回答完全正确。

只是想说明,您还可以通过使用 settings.job 中的参数来就地运行 Web 作业:

{ 
    "is_in_place": true
}

详细信息可以在 Kudu 文档中找到:
https://github.com/projectkudu/kudu/wiki/WebJobs#webjob-working-directory

© www.soinside.com 2019 - 2024. All rights reserved.