2016-06-13 39 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