8
votes

Est-il possible de lier Web.config transformer avec le profil de publication?

Actuellement, je peux facilement configurer la transformation web.config basée sur la configuration de construction, par exemple. Utilisez connexionstring = serveur; .. pour débogage et connexionsRing =. / sqlexpress; .. pour version . / p>

Mais est-il possible de faire une transformation web.config de baser sur le profil de publication Web? C'est à dire. Utilisez connexionstring = serveur1; .. pour profil serveur1 et connexionstring = serveur2; .. pour serveur2 ?


0 commentaires

3 Réponses :


0
votes

Je pense que les profils de publication sont indépendants des profils de construction, ce qui est un peu dommage, car vous pouviez facilement déployer accidentellement une configuration de débogage sur vos serveurs de production.

Toutefois, si vous utilisez MSDeploy, il existe des moyens de modifier le Web.config. Voir MsDeploy - Modification des paramètres de chaîne de connexion après le déploiement du package pour plus de détails.


0 commentaires

0
votes

Il pourrait y avoir une façon légèrement différente de le faire.

sur vos serveurs de production Créez une entrée factice, pour CustomDB, dans le fichier C: \ Windows \ System32 \ Pilotes \ etc \ héberge le fichier sur chacune des machines de production. Chacun pointant vers la base de données que vous souhaitez que la machine soit utilisée. Ensuite, il vous suffit de pointer vers le ConnectionsRing = CustomDB; Pour tous vos serveurs de production.

Un seul inconvénient de ce serait que vous auriez besoin d'un accès au fichier d'hosts et qu'il vous obligerait à utiliser un DB.

J'espère que cela aide


1 commentaires

Intéressant. Pourtant, un autre inconvénient est que vous ne pouvez pas (facilement) la version-contrôle du fichier d'hosts, car il contiendra des paramètres spécifiques à la machine et qu'il ajoute une complexité au processus de déploiement, nécessitant un accès en écriture aux chemins système que vous devez normalement éviter.



5
votes

Nous gardons toutes les configurations spécifiques à la machine / profil dans des fichiers de configuration distincts, puis utilisez configsource pour les inclure comme ... xxx

de cette façon web.config est identique et ne le fait pas exiger des transformations. Nous faisons cela pour les chaînes de connexion, les paramètres SMTP et les paramètres de l'application.

Nous contrôlons des fichiers web.config et "spécifiques à la machine" tels que cstrings.config.production, cstrings.config.sing, etc.

Une fois que vous avez cette structure, il est facile de générer des images pour différents profils. Nous avons des scripts de déploiement sur chaque machine qui lisent une variable d'environnement et déployé de manière appropriée. Par exemple, le script de construction de serveur de stadification copie cstrings.config.Sting vers cstrings.config, etc.


2 commentaires

Comment exécutez-vous vos scripts de déploiement pour relier le profil actuel et une chaîne de connexion appropriée?


@ABATISHCEV: Notre serveur de construction a des objectifs pour le test, la mise en scène et la production. Une commande propre (svn export réellement) est faite. Construire des scripts "Renommer $ {bin} /cstrings.config. $ {Destination} $ {bin} /cstrings.config" Puis nous exécutons des tests de l'unité, un déploiement ZIP et FTP sur la machine de destination. Chaque destination contient des fichiers de configuration CStrings, SMTP et AppSettings dans la version de version. E.g., cstrings.config.sing, smtp.config.sing, appsettages.config.Sting. FYI: Vous pouvez laisser cstrings.config sur des machines cible en tant que fichier en lecture seule si vous êtes très conscient de la sécurité. Ce n'est pas une grosse affaire dans notre environnement.