2016-06-13 58 views
10

我有一个在Azure App Services上运行的网站。它有一个WebJob,可以部署它,因此一旦部署就可以放入它的App_data文件夹中。Azure WebJob在部署后是否查看app.config

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

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

因此,根据我的标题,WebJob在部署后是否使用App.Settings文件,或者是否使用某种内存副本从Azure门户应用程序设置,或者它是否使用网站的web.config?

只是预EMT一个可能的问题,我知道app.settings被重命名为myappname.exe.config

回答

11

这里是它如何工作的:

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

真棒!感谢那! –

+1

只是好奇,它为网站做了同样的事情,还是他们运行我们在FTP中看到他们的地方? –

+0

另外,这是否意味着除了应用程序设置和连接字符串之外,在部署之后不可能更改app.config中的任何内容? –

1

马克·西曼在此阐述:

至于我可以告诉,它会尝试以此优先顺序读取配置设置:

1.尝试在网站的>联机配置(请参阅下文)中查找配置值。

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

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

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

+2

对于Webjob ,我不认为它会查看.cscfg文件,因为webjobs不会运行到云服务,而是进入web应用程序。所以我认为这只是看门户设置,然后app.config – Thomas