2012-06-14 3 views
1

J'ai quelques projets où nous avons 3-5 web.config.xxx différents qui devraient répondre à différents scénarios, développeur-ordinateur, build-server, serveur de test, serveur de production, production -internal, production-externe. Le xxx est juste un marqueur décrivant l'environnement auquel il appartient.Configurer web.config pour différents scénarios

Ces web.configs sont pour la plupart identiques, les choses comme les chaînes de connexion, les points d'intégration, les serveurs de courrier, etc. sont différents mais la structure est plus ou moins identique. Donc, si j'ajoute une valeur dans le web.config, je dois l'écrire dans quelques fichiers, si je change la valeur, je dois la changer dans tous les web.configs de la solution ... C'est très facile de pense que je le ferai plus tard, je pourrais changer le nom, je ne suis pas sûr que ce soit correct ... donc nous manquons des valeurs quand nous arrivons à la production parfois, et c'est embarrassant. Le problème est que c'est un problème qui devrait être facile à éliminer.

Comment gérer cette situation? Je commence à regarder "pre-build-events" qui pourrait vérifier la construction-configuration et faire quelques remplacements simples, changez {db} en DevDB si je construis en debug. Si je construis pour build-server, je pourrais avoir une construction-configuration et faire le remplacement approprié pour cet environnement.

Y a-t-il un moyen préféré de gérer cela?

+0

utilisez-vous des projets de site Web ou des projets d'application Web? Si vous utilisez des projets d'application Web, ces web.config.xxx spécifiques ne vous seront pas utiles car ils ne seront pas fusionnés lors de la construction ou de la reconstruction. –

Répondre

1

Il semble que vous bénéficieriez de transformations de configuration. Lorsque vous déployez un site Web, vous voulez souvent que certains paramètres du fichier Web.config de l'application déployée soient différents du fichier de développement Web.config. Par exemple, vous pouvez désactiver les options de débogage et modifier les chaînes de connexion pour qu'elles pointent vers des bases de données différentes.

La source ci-dessous montre comment configurer un fichier de transformation web.config qui est appliqué automatiquement pendant le déploiement afin de modifier le fichier web.config.

Source: How to: Transform Web.config When Deploying a Web Application Project

Note: Cette technique peut être appliquée à un certain nombre de déploiements (Mise en scène, d'essais, de la production, Foo, bar, etc.).

Typiquement, dans un projet, vous auriez 1 fichier web.config. Associé à cela vous pourriez avoir web.production.config, web.staging.config, etc. Chacun des fichiers de configuration web. *. Serait une transformation qui contient un peu de langage pour modifier diverses valeurs dans votre web.config, tels que les chaînes de connexion. Chacun de ces fichiers de transformation est associé à une option de déploiement que vous sélectionnez habituellement lors du déploiement (la petite liste déroulante située en haut de Visual Studio, généralement définie sur 'Debug').

+0

Malheureusement, nous travaillons avec des sites Web ... vos solutions où exactement ce que je cherchais dans tous les aspects, sauf celui-là ... – user1153744

Questions connexes