2013-06-14 7 views
1

Mon site est structuré de la façon suivante:Lire les valeurs à partir du fichier web.config non root

  • répertoire racine
    • Arcade
      • default.aspx
      • web. config
    • default.aspx
    • web.config

J'ai une méthode qui permet d'accéder Method1():

System.Configuration.ConfigurationManager.AppSettings["Total_Unique_Plays_Required_For_High_Score_Board"] 

Cette valeur existe dans le fichier root/Arcade/Web.config mais pas dans le fichier root/web.config.

Lorsque j'exécute Method1() à partir d'une page du répertoire /arcade, cela fonctionne correctement. Toutefois, lorsque j'exécute cette méthode en tant qu'événement temporisé à partir de global.asax, il recherche la valeur dans le fichier racine web.config et lance un System.NullException.

Est-ce que quelqu'un sait comment je peux spécifier pour rechercher la valeur dans le fichier root/arcade/web.config et pas le fichier root/web.config?

Répondre

3

Vous pouvez d'abord ouvrir le fichier web.config.

Ainsi appeler cela chargera votre fichier enfant; remarquez que vous donnez le chemin d'accès au dossier contenant le fichier web.config, pas le fichier de configuration actuel.

var config = WebConfigurationManager.OpenWebConfiguration("~/Arcade"); 

Vous pouvez maintenant obtenir vos valeurs, comme:

string MyValue = config.AppSettings.Settings["MySetting"].Value; 

Vous pouvez également obtenir la liste des paramètres de l'application en appelant:

KeyValueConfigurationCollection appSettings = config.AppSettings.Settings; 
+0

Brillant, merci! –

+1

Vous êtes les bienvenus :) – Darren

Questions connexes