Je dois changer ma chaîne de connexion dans le fichier web.config basé sur une variable d'environnement (pour différents respiornements, comme Dev / Staling / Production, etc.). J'ai vu d'autres solutions qui utilisent des tâches de construction pour mentir différentes configurations, mais n'ont pas été capables de trouver quelque chose qui me permettra de changer de chaîne de connexion en fonction d'une variable d'environnement. Est-ce que quelqu'un sait de quelque manière que ce soit pour le faire? P>
4 Réponses :
Que diriez-vous de disposer de deux chaînes de connexion et d'une autre variable, comme " istesting code>" dans votre web.config, puis en fonction de la valeur de
istesting code> choisir la chaîne de connexion à utiliser ? p>
Vous pouvez également utiliser des sections de configuration et basée sur le commutateur de noms de serveur entre les sections. De cette façon, vous pouvez avoir des clés nommées les mêmes. P>
Nous utilisons l'attribut CONFIGSOURCE pour les éléments AppSettings et connexions dans le Web.config.
Fondamentalement, nous avons le même fichier web.config pour tous nos environnements: dev, qa et production. P >
Nous utilisons ensuite des fichiers séparés "spécifiques à l'environnement". Par exemple ... p>
dans web.config: p> alors nous maintenons Les fichiers suivants: p> puisque nous compilons toutes les applications ASP.NET avant de déployer, nous avons une tâche MSBuild personnalisée utilisée par notre solution CI qui copie la Fichiers de configuration à droite (basé sur l'environnement cible) au fichier .config ... p> Donc, si nous déployons sur Dev, local.appsettings.config.développement -> local.appsettages.config < / p> Si nous déployons sur qa, local.appsettings.config.qa -> local.appsettings.config p> Cela nous permet de garder le nervège principal.config de la même manière que notre environnements. P> p>
Hé merci, y a-t-il un moyen de le faire en fonction d'une variable d'environnement cependant? Je voudrais le faire de cette façon, mais mon client a demandé à le faire en fonction d'une variable d'environnement qu'ils ont configuré dans chacun de leurs environnements différents. Si cela fait cela, il me manque cette partie (où elle examine une variable d'environnement). Merci
Vous devriez garder les chaînes de connexion pour chaque environnement dans un seul fichier .config .. quelque chose comme:
J'utilise cette méthode avec les fichiers CONFIGSOURCE dans le dossier App_Data. Vous pouvez publier votre site sans le dossier App_Data, en le mélange ultérieurement avec la configuration de votre environnement de serveur.
Vous pouvez définir un web.config pour chaque environnement dans le gestionnaire de configuration à l'aide d'événements Prebuild. J'ai essayé cela avec d'excellents résultats. P>
http://www.haselman.com/blog/MangingMultipleconfigurationFileEnvents.aspx p>
Lorsque vous avez débogué et construire, vous pouvez avoir la locale / pré-production / production ... etc p>