1

Je suis en train de jouer avec un petit ASP.NET Core 1.1 application que j'ai publié. Maintenant, je suis le documentation en ce qui concerne l'utilisation appsettings * .json et les variables d'environnement. J'ai donc les suivantes:ASP.NET Core (dernier) - appsettings.json ConnectionString ne pas surcharger sur Azure

appsettings.json 
appsettings.Development.json 

Chaque appsettings * .json fichier a une section "ConnectionStrings:" appropriée:

"ConnectionStrings": { 
    "IdeasDatabase": "Server=tcp:adb.database.windows.net,1433;Initial Catalog=db;Persist Security Info=False;User ID=a_user;Password=apwd;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" 
    } 

Alors, quand je publiais pour commencer à Azure, j'ai utilisé une connexion par défaut chaîne dans les paramètres de publication (ce qui était mal, je sais), maintenant ce montre dans Azure paramètres à distance de l'application: mon

enter image description here

La chaîne de connexion ci-dessus était peuplée sur mon premier publier dans cet écran (Publier Assistant):

enter image description here

Maintenant mon application de production semble utiliser ce paramètre dans l'image ci-dessus et ne pas prendre la réglage de ma section de chaîne de connexion appsettings.json.

Mon fichier appsetting.json est présent sur Azure service App:

enter image description here

Je sais que je peux passer outre cette chaîne de connexion de base de données dans l'assistant de publication tot la chaîne correcte, mais ne devrait pas Azure prendre la chaîne de connexion d'abord de mon fichier appsettings.json qui est différent de partout où il le stocke sur Azure.

Répondre

3

maintenant c'est affiché dans téléréglages Azure pour la mon application:

Azure paramètres à distance stockées sous forme de variables d'environnement. Il a une priorité plus élevée que la configuration dans appsettings.json. Si vous souhaitez utiliser les paramètres configurés dans appsettings.json lors de l'exécution sur Azure, vous pouvez supprimer les paramètres distants Azure du portail Azure ou de Visual Studio. Après cela, Azure Web App utilisera le paramètre dans appsettings.json.

enter image description here

+0

Oh ma tante étourdie - pourquoi n'ai-je pas essayé cela! Je supposais qu'il y aurait un drapeau "override azure" dans le Configuration Builder il me manquait et complètement négligé le bouton "Supprimer". – garfbradaz

+1

Il y a une bonne raison pour que l'environnement gagne, les données sensibles ne devraient pas être stockées dans le fichier .JSON – RickAndMSFT

+0

@RickAndMSFT Donc nous disons alors, la commande Publier pour Production (dans l'assistant) pour connstring et utiliser les variables Développement, Mise en scène pour notre test Instances (qui pointent vers les fichiers AppSetting appropriés * .json)? – garfbradaz

0

Utilisez les variables d'environnement ou un autre mécanisme sécurisé. Le stockage de la chaîne de connexion de production dans un fichier n'est pas sécurisé.