0

Je suis nouveau au développement d'applications Web ASP.Net et j'essaie d'apprendre.ASP.NET Web App - Chaîne de connexion pour le débogueur

J'ai une application Web ASP.NET dans laquelle une chaîne de connexion spécifique est utilisée lors du débogage (en appuyant sur F5). Voici les chaînes de connexion et paramètres de l'application dans Web.config fichier:

<appSettings> 
    <add key="Environment" value="TEST"/> 
</appSettings> 
<connectionStrings> 
    <add name="TEST" connectionString="Server=mySQLExpressServerAddress;Database=myDataBase;Trusted_Connection=True;" /> 
    <add name="DEV" connectionString="a connection to the test server db" /> 
    <add name="PROD" connectionString="a connection to the prod server db" /> 
</connectionStrings> 

Jusqu'à ici, quand je debug (en appuyant sur F5). L'exécution est lisse.

Quand je commente le test de la chaîne de connexion et ajouter une chaîne de connexion secondaire comme ceci:

<appSettings> 
    <add key="Environment" value="TEST"/> 
</appSettings> 
<connectionStrings> 
    <!-- <add name="TEST" connectionString="Server=mySQLExpressServerAddress;Database=myDataBase;Trusted_Connection=True;" /> --> 
    <add name="TEST_TWO" connectionString="Server=mySQLExpressServerAddress;Database=myDataBase;Trusted_Connection=True;" /> 
    <add name="DEV" connectionString="a connection to the test server db" /> 
    <add name="PROD" connectionString="a connection to the prod server db" /> 
</connectionStrings> 

et déboguer l'application (en appuyant sur F5), il y a une exception de pointeur nul. Le détail d'exécution est la suivante:

System.NullReferenceException was unhandled by user code 
    HResult=-2147467261 
    Message=Object reference not set to an instance of an object. 

Maintenant, si je change la valeur de l'environnement dans un contexte d'applications de test test_two (tout en laissant la chaîne de connexion TEST commenté comme il est) comme ceci:

<appSettings> 
    <add key="Environment" value="TEST_TWO"/> 
</appSettings> 
<connectionStrings> 
    <!-- <add name="TEST" connectionString="Server=mySQLExpressServerAddress;Database=myDataBase;Trusted_Connection=True;" /> --> 
    <add name="TEST_TWO" connectionString="Server=mySQLExpressServerAddress;Database=myDataBase;Trusted_Connection=True;" /> 
    <add name="DEV" connectionString="a connection to the test server db" /> 
    <add name="PROD" connectionString="a connection to the prod server db" /> 
</connectionStrings> 

et déboguer l'application (en appuyant sur F5), l'exécution est lisse. Je crois que la clé "Environnement" des paramètres de l'application est utilisée pour identifier la chaîne de connexion pendant le débogage. Je veux savoir si j'ai raison ou tort.

Si je me trompe, comment puis-je attribuer une chaîne de connexion particulière pour le débogage?

Merci Vous

Répondre

2

En regardant ce que vous essayez de faire, je pense que vous devez être à la recherche en utilisant des transformations web.config.

Jetez un oeil à ce guide vraiment sympa sur le sujet Transform Web.Config

Vous avez raison que la référence du nom est ce que les paramètres d'application est à la recherche de si vous changez dans votre web.config et non votre code est va te crier dessus! ;-)

ConfigurationMananager.Connections["Test_Two"].ConnectionString

Voici ce que vous cherchez dans votre code. mais si vous voulez une chaîne de connexion DB différente pour le débogage par rapport à la version, c'est là qu'intervient votre transformation web.config.

Espérons que cela aide.