web-dev-qa-db-fra.com

Les paramètres d'application Azure ne remplacent pas mes valeurs de fichier appsettings.json

J'ai essayé d'ajouter DefaultConnection de mon fichier appsettings.json aux paramètres d'application d'Azure, mais Azure ne remplacera pas la chaîne de connexion.

enter image description here

enter image description here

Tout article ou blog que je peux trouver déclare que tout ce que je dois faire est d'ajouter le nom de la chaîne de connexion comme il l'indique dans le fichier appsettings.json et Azure devrait faire le reste (par exemple https: //tehremo.wordpress. com/2016/10/07/override-connection-strings-app-settings-in-asp-net-core-and-Azure-app-service / ) mais lorsque l'application est publiée, elle utilise ma connexion locale chaîne.

Mon fichier Startup.cs ressemble à ceci:

enter image description hereenter image description here

REMARQUE: je publie à l'aide de la distribution continue VSTS avec la tâche de publication "Déployer Azure App Service".

20
psycho

J'ai juste eu un problème similaire (le problème était avec le type de chaîne de connexion PostgreSQL, je devais le changer en personnalisé) et maintenant cela fonctionne pour moi, alors voici les morceaux:

  1. Ceci est mon fichier appsettings.json. J'ai une valeur pour "Psql" définie dans mon appsettings.Development.json, mais dans le appsettings.json, elle est laissée vide. enter image description here
  2. Ce sont les paramètres définis dans le portail Azure. Veuillez noter qu'il existe deux façons de remplacer la chaîne de connexion. enter image description here
  3. C'est la partie de mon fichier Startup.cs. Faites attention à l'ordre d'application des paramètres dans le constructeur de démarrage et à la façon dont j'obtiens la chaîne de connexion dans la méthode ConfigureServices (GetConnectionString est une méthode d'extension standard). enter image description here

Informations supplémentaires de mes commentaires ci-dessous:

L'interface graphique Azure (chaînes de connexion, paramètres d'application) utilise des variables d'environnement en interne, de sorte que appsettings.json restera le même.

S'il est nécessaire de remplacer une valeur appsettings.json pendant l'activité de publication VSTS (avant qu'elle ne soit publiée sur Azure), ALM Corner Build de Colin Des outils de libération peuvent être utilisés. Voici les liens vers Outils ALM Corner Build & Release de Colin et tutoriel .

36
pasul

Merci @pasul, votre aide a été très appréciée et m'a aidé à trouver une solution alternative. Afin de déployer à l'aide de la tâche VSTS et de remplacer les paramètres d'application, vous devrez ajouter des variables à la tâche de publication et transmettre à la tâche le fichier json en question pour la substitution de variables.

Lorsque dans la tâche de publication "Déployer Azure App Service", vous devriez voir une section "Transformations de fichiers et substitution de variables". Ici, vous fournissez le chemin d'accès au fichier json que vous souhaitez échanger les valeurs des variables.

enter image description here

Ensuite, vous devrez cliquer sur le bouton d'options de l'environnement de publication. Vous verrez une option pour configurer les variables dans le menu contextuel.

enter image description here

De là, vous pouvez ajouter la propriété json que vous souhaitez modifier en tant que variable. Dans mon cas, la chaîne de connexion. Qui ressemblera à ceci:

enter image description here

"ConnectionStrings.DefaultConnection"

Ensuite, entrez simplement la valeur de votre chaîne de connexion. VSTS échangera alors ces valeurs pour vous lors du déploiement.

6
psycho