2010-10-09 7 views
1

J'utilise VSTS 2010 + ASP.Net + C# 4.0 pour apprendre le code de quelqu'un d'autre pour une application WCF. Je trouve en plus de Web.Config, il y a aussi Web.Debug.config et Web.Release.config. J'ai recherché le contenu de Web.Config, mais je ne trouve aucune référence à Web.Debug.config et Web.Release.config. Cependant, dans l'explorateur de solution IDE VSTS 2010, je trouve qu'il y a une flèche pointée de Web.Config vers Web.Debug.config et Web.Release.config - il semble donc qu'il y ait une relation de référence. Cela me rend confus.Problème web.config dans ASP.Net

Dans tous les 3 fichiers de configuration, il y a des éléments identiques avec des valeurs différentes, par exemple, dans web.config, il y a chaîne de connexion DBConnectinString définie de cette manière,

<connectionStrings> 
    <add name="DBConnectinString" connectionString="data Source=10.10.10.123;uid=foo;pwd=foo;database=FOO" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

Et Web.Debug.config , il y a DBConnectinString chaîne de connexion définie dans presque la même manière avec des valeurs différentes,

<connectionStrings> 
    <add name="DBConnectinString" connectionString="data Source=10.10.10.124;uid=foo;pwd=foo;database=FOO" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

Mon quesiton est,

  1. Quelle est la relation entre Web.Config et Web.Debug.config/Web.Release.config?
  2. Pourquoi définir le même élément avec des valeurs différentes dans Web.Config et Web.Debug.config/Web.Release.config?

Répondre

1

Ceci est une nouvelle fonctionnalité dans Visual Studio 2010. Il vous permet d'avoir différents fichiers de configuration pour construire des schémas de configuration. Donc, lorsque vous construisez en mode débogage, il inclura le fichier Web.Debug.Config, le même lorsque vous construisez pour la version.

Cela vous permet par exemple de gérer différentes configurations pour votre base de données - une pour votre environnement de développement et pour votre environnement en direct.

Espérons que ça aide!

+0

Merci. Deux autres questions, 1. la chaîne de connexion définie dans Web.Debug.Config a une priorité plus élevée que web.config (c'est-à-dire remplacera la valeur définie dans web.config)? 2. À l'exécution, par exemple, IIS 7.0, il utilisera web.config avec Web.Debug.Config (devons-nous déployer les deux fichiers de configuration dans IIS)? Ou utilisez simplement web.config? – George2

+1

Cela dépend uniquement de la configuration de construction que vous avez utilisée. Vous pouvez vérifier ces liens: http://stackoverflow.com/questions/2791236/what-is-the-web-debug-config-and-web-release-config-file-for http://blogs.msdn.com /b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx Vous devez déployer uniquement le fichier Web.config. VIsual Studio a pris la bonne version et l'a remplacé dans votre build pour vous. – anthares

+1

IIS utilisera uniquement "Web.config", aucun des autres ne s'appliquera. Je pense que vous avez raison sur votre première question, mais quelqu'un devrait confirmer. – Gup3rSuR4c

2

Vous avez différents fichiers de configuration pour différents paramètres. Considérez Debug comme vos paramètres d'environnement local, comme les chaînes de connexion au serveur de tests, les variables de débogage, etc. Les paramètres de version contiendraient des paramètres comme la chaîne de connexion pour le serveur de production.

Dans la barre supérieure, à côté du débogage d'exécution doit être une liste déroulante contenant tous les paramètres disponibles. Vous pouvez également en ajouter.

Ce paramètre sont utiles pour oneclick-déploiement comme le nouveau WebDeploy avec VS2010

Modifier:
Ce lien How to use web.config transforms to replace appSettings and connectionStrings? devrait vous montrer une soluce de base sur web.config transforme

+0

Merci. Deux autres questions, 1. la chaîne de connexion définie dans Web.Debug.Config a une priorité plus élevée que web.config (c'est-à-dire remplacera la valeur définie dans web.config)? 2. À l'exécution, par exemple, IIS 7.0, il utilisera web.config avec Web.Debug.Config (devons-nous déployer les deux fichiers de configuration dans IIS)? Ou utilisez simplement web.config? – George2

+0

Pour le déploiement web, je pense que vous voulez dire quand nous sélectionnons "Publier" pour le projet WCF? Si c'est le cas, dans la boîte de dialogue Publier et si je sélectionne WebDeploy comme méthode de publication, je ne vois aucune option pour utiliser Web.Debug.Config ou Web.Debug.Release. Des commentaires? – George2

+0

Une autre confusion est que je trouve sur web.debug.config, il y a un élément appelé, configuration xmlns: xdt = "http://schemas.microsoft.com/XML-Document-Transform, qu'est-ce que cela signifie? – George2