Azure WebJob在部署

时间:2016-06-13 05:25:26

标签: azure azure-webjobs

我有一个在Azure App Services上运行的网站。它有一个随部署的WebJob,因此一旦部署就会​​被放入它的App_data文件夹中。

如果我在部署后FTP到我网站的wwwroot / app_data文件夹,则app.config文件没有我在Azure门户中的“应用程序设置刀片”中设置的配置设置。我的web.config中的设置已更改为网站。

最奇怪的是,当我运行WebJob时,日志输出表明正在使用正确的设置!!

根据我的标题,WebJob是否在部署后使用App.Settings文件,或者是否使用来自azure门户的应用程序设置的某种内存副本,或者它是否使用了Web中的内容.config的网站?

为了预先提出一个问题,我知道app.settings已重命名为myappname.exe.config

3 个答案:

答案 0 :(得分:15)

以下是它的工作原理:

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

答案 1 :(得分:1)

Mark Seeman详细阐述了这一点:

  

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

     

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

     

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

     

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

(阅读整个调查:http://blog.ploeh.dk/2014/05/16/configuring-azure-web-jobs/

答案 2 :(得分:1)

David Ebbo回答是完全正确的。

只是想声明您还可以通过在settings.job中使用参数来运行Web作业:

{ 
    "is_in_place": true
}

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