2016-06-13 6 views
10

Ich habe eine Website auf Azure App Services ausgeführt. Es verfügt über einen WebJob, der damit implementiert wird und nach der Bereitstellung in den App_data-Ordner des Benutzers gestellt wird.Sieht Azure WebJob die app.config einmal bereitgestellt

Wenn ich den FTP-Ordner wwwroot/app_data meiner Site einmal bereitgestellt habe, enthält die app.config-Datei keine der konfigurierten Einstellungen, die ich im Azure-Portal unter "Application Settings Blade" eingerichtet habe. Die Einstellungen wurden jedoch in meiner web.config für die Website geändert.

Das Merkwürdigste ist, dass wenn ich den WebJob starte, die Protokollausgabe anzeigt, dass die richtigen Einstellungen verwendet werden !!

Also verwendet der WebJob nach meiner Überschrift die App.Settings-Datei einmal bereitgestellt oder verwendet es eine Art In-Memory-Kopie der App-Einstellungen aus dem Azure-Portal, oder verwendet es, was in der web.config der Website?

Nur vorab emt eine mögliche Frage, ich weiß, dass die AnwendgsOptionen wird

Antwort

11

Hier ist, wie es funktioniert:

  • Azure laufen nicht Ihren WebJob an Ort und Stelle, sondern kopiert sie in einen temporären Ordner (um zu verhindern, dass es bei der Ausführung an Ort und Stelle gesperrt wird).
  • Als Teil dieses Kopiervorgangs werden die App-Einstellungen in die temporären Dateien umgewandelt. Deshalb sehen Sie die Änderungen in der Konfigurationsdatei nicht.
  • Azure hört Dateiänderungen in Ihren WebJob-Dateien ab. Wenn Sie also Ihre Konfigurationsdatei ändern, kopiert/transformiert Azure die Dateien erneut und startet den WebJob neu.
+0

Awesome sehen! Dank dafür! –

+1

Nur neugierig, macht es das gleiche für die Websites oder laufen sie dort, wo wir sie im FTP sehen? –

+0

Bedeutet dies auch, dass abgesehen von App-Einstellungen und Verbindungszeichenfolgen nach der Bereitstellung nichts in der app.config geändert werden kann? –

1

Mark Seeman näher auf diese myappname.exe.config umbenannt:

Soweit ich sagen kann, Es versucht, Konfigurationseinstellungen in dieser priorisierten Reihenfolge zu lesen:

1. Versuchen Sie, den Konfigurationswert in der Online-Konfiguration der Website zu finden (siehe unten).

2. Versuchen Sie, den Konfigurationswert in der .cscfg-Datei zu finden.

3. Versuchen Sie, den Konfigurationswert in der Datei app.config oder web.config zu finden.

(Lesen Sie die ganze Untersuchung hier: http://blog.ploeh.dk/2014/05/16/configuring-azure-web-jobs/)

+2

Für Webjob Ich denke nicht, dass es sich um die .cscfg-Datei handelt, da Webjobs nicht in einen Cloud-Service, sondern in eine Webapp laufen. Also ich denke, es wird nur auf die Portaleinstellungen dann die app.config – Thomas