204 votes

À l’aide de Web.config différents dans l’environnement de développement et de production

J'ai besoin d'utiliser de base de données différent de la chaîne de connexion et l'adresse du serveur SMTP dans mon ASP.NET application selon qu'il est exécuté dans le développement ou la production de l'environnement.

L'application lit les paramètres à partir du Web.fichier de configuration via WebConfigurationManager.AppSettings de la propriété.

J'ai utiliser créer/Publier commande pour déployer l'application sur un serveur de production via FTP, puis remplacez manuellement Web à distance.config avec un correct.

Est ce que c'est possible de simplifier le processus de déploiement? Merci!

172voto

Pierre-Alain Vigeant Points 9797

Dans Visual Studio 2010 et au-dessus, vous avez maintenant la possibilité d'appliquer une transformation de votre site web.config en fonction de la configuration de build.

Lors de la création d'un site web.la configuration, vous pouvez décompresser le fichier dans l'explorateur de solutions, et vous verrez deux fichiers:

  • Web.Debug.Config
  • Web.La libération.Config

Ils contiennent de transformation de code qui peut être utilisé pour

  • Modifier la chaîne de connexion
  • Supprimer suivi de débogage et de paramètres
  • Enregistrer les pages d'erreur

Voir http://msdn.microsoft.com/en-us/library/dd465326(SV.100).aspx pour plus d'informations.

Il est également possible (mais non pris en charge officiellement) pour appliquer le même type de transformation à une non application web app.config le fichier. Voir Phil Bolduc blog au sujet de la façon de modifier votre fichier de projet pour ajouter une nouvelle tâche msbuild.

Une nouvelle extension pour Visual Studio 2010 et au-dessus, "SlowCheetah," est disponible pour prendre soin de la création pour transformer tout fichier de config.

85voto

Jason Slocomb Points 1446

L' <appSettings> balise dans le web.config prend en charge un attribut de fichier qui vous permettra de charger externe config avec son propre jeu de clés/valeurs. Ces remplacent les paramètres que vous avez dans votre site web.config ou en ajouter.

Nous profitons de cette en modifiant notre site web.config au moment de l'installation avec un attribut de fichier qui correspond à l'environnement du site est en cours d'installation. Nous faisons cela avec un interrupteur sur notre programme d'installation.

par exemple;

<appSettings file=".\EnvironmentSpecificConfigurations\dev.config">

<appSettings file=".\EnvironmentSpecificConfigurations\qa.config">

<appSettings file=".\EnvironmentSpecificConfigurations\production.config">

Note:

  • Les changements à la .config spécifié par l'attribut ne sera pas déclencher un redémarrage de l'asp.net processus de travail

24voto

wulimaster Points 623

Avez-vous regardé aux projets de déploiement web ?

http://www.Microsoft.com/downloads/details.aspx?FamilyID=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en

Il y a une version pour VS2005 ainsi, si vous n’êtes pas sur 2008.

13voto

harpo Points 17399

Je voudrais savoir, trop. Cela permet de cerner le problème pour moi

Je puis garder un connectionStrings.config comme un connectionStrings.config « {host} ». C’est toujours un problème, mais si vous faites cela pour les sections qui diffèrent dans les deux environnements, vous pouvez déployer et la version du fichier web.config même.

(Et je n’utilise pas VS, btw.)

10voto

Vishal R Joshi Points 727

Veuillez lire http://vishaljoshi.blogspot.com/2009/03/web-deployment-webconfig-transformation_23.html qui est solution VS 2010 pour régler votre problème exact...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X