2017-07-25 6 views
12

Ich habe versucht, DefaultConnection aus meiner appsettings.json-Datei zu Azures Anwendungseinstellungen hinzuzufügen, Azure wird jedoch die Verbindungszeichenfolge nicht überschreiben.Azure-Anwendungseinstellungen überschreiben meine appsettings.json-Dateiwerte nicht

enter image description here

enter image description here

Jeder Artikel oder Blog-I-Staaten finden können, alles was ich brauche sollte die Verbindungszeichenfolge Namen zu tun hinzuzufügen ist, wie es in der appsettings.json Datei heißt und Azure sollte den Rest (zB https://tehremo.wordpress.com/2016/10/07/override-connection-strings-app-settings-in-asp-net-core-and-azure-app-service/), aber wenn die Anwendung veröffentlicht wird, verwendet sie meine lokale Verbindungszeichenfolge.

Meine Startup.cs Datei sieht wie folgt aus:

enter image description here enter image description here

HINWEIS: veröffentliche ich mit VSTS kontinuierliche Lieferung mit "Deploy Azure App Service" Release Aufgabe.

+0

können Sie Ihre Startup.cs-Datei hinzufügen? – rolspace

Antwort

17

Ich hatte gerade ein ähnliches Problem (das Problem mit PostgreSQL-Verbindung String-Typ war, musste ich es Gewohnheit ändern) und jetzt funktioniert es für mich, also das sind die Stücke:

  1. Das ist mein appsettings.json Datei. Ich habe einen Wert für 'Psql' gesetzt in meiner Appsettings.Development.json, aber in der appsettings.json ist es leer gelassen. enter image description here
  2. Dies sind die Einstellungen, die im Azure-Portal festgelegt sind. Beachten Sie, dass es zwei Möglichkeiten gibt, die Verbindungszeichenfolge zu überschreiben. enter image description here
  3. Dies ist der Teil meiner Startup.cs-Datei. Beachten Sie die Reihenfolge, in der die Einstellungen im Startup-Konstruktor angewendet werden, und die Art und Weise, wie ich die Verbindungszeichenfolge in der ConfigureServices-Methode abruft (GetConnectionString ist eine Standarderweiterungsmethode). enter image description here

Weitere Informationen meiner Kommentare unter:

Azure GUI (Verbindungszeichenfolgen, Anwendungseinstellungen) verwendet Umgebungsvariablen intern, so dass die appsettings.json wird die gleiche bleiben.

Wenn es einen Bedarf nach einem Wert von appsettings.json überschrieben werden während VSTS Aktivität freisetzen (bevor es zu Azure veröffentlicht wird), Colins ALM Corner Bauen & Entriegelungswerkzeuge verwendet werden kann. Hier sind die Links zu Colin's ALM Corner Build & Release Tools und tutorial.

+0

Hallo. Ich habe es ohne Freude ausprobiert. Ich habe meinen Statrtup-Code zu meiner Frage hinzugefügt – psycho

+0

Hey, wie verstehen Sie, dass Sie Verbindungszeichenfolge nicht geändert wird, Fehler beim Starten der Website? Haben Sie versucht, die App-Einstellung anstelle der Verbindungszeichenfolge zu verwenden ("anderer Weg" auf meinem zweiten Bild)? Sie können auch versuchen, einen anderen Namen aus der 'DefaultConnection' zu verwenden. Übrigens, appsettings.json ist optional, wurde es absichtlich gemacht? – pasul

+0

Ich weiß, dass es sich auf die falsche Verbindungszeichenfolge bezieht, weil ich Logs habe, die mir sagen, dass die Verbindung zur Datenbank ungültig ist, wenn ich mich anmelde und auch die Verbindungszeichenfolge ist falsch, wenn ich zu appsettings.json in Kudu gehe. Ich habe den optionalen Parameter auf false und immer noch keine Freude geändert. – psycho

1

Dank @pasul, Ihre Hilfe wurde sehr geschätzt und half mir eine alternative Lösung zu finden. Um mithilfe der VSTS-Aufgabe zu implementieren und die Anwendungseinstellungen zu ersetzen, müssen Sie der Freigabetask Variablen hinzufügen und die fragliche JSON-Datei für die Variablensubstitution an die Aufgabe übergeben.

Wenn in der Release-Aufgabe "Deploy Azure App Service" angezeigt wird, sollten Sie einen Abschnitt "Dateitransformationen und Variablenersetzung" sehen. Hier geben Sie den Pfad zu der JSON-Datei an, in der Sie Variablenwerte austauschen möchten.

enter image description here

Dann müssen Sie auf die Schaltfläche Optionen auf der Release-Umgebung klicken. Sie sehen eine Option zum Konfigurieren von Variablen im Popup-Menü.

enter image description here

Von hier aus können Sie die json Eigenschaft, die Sie als Variable ändern möchten hinzufügen. In meinem Fall die Verbindungszeichenfolge. Welche wird wie folgt aussehen:

enter image description here

"ConnectionStrings.DefaultConnection"

Dann in Ihrer Verbindungszeichenfolge Wert nur setzen. VSTS wird diese Werte dann bei der Bereitstellung für Sie austauschen.

Verwandte Themen