2015-02-16 14 views
6

Ho un'applicazione Web distribuita su IIS. Questa applicazione web sta consumando una libreria che vuole accedere a Web.config.Leggere web.config dalla libreria utilizzata dalla webapplication distribuita utilizzando IIS

Esempio: Foo.dll è l'applicazione web distribuito su IIS Foo.Utility.dll è consumato dal Foo.dll

C'è un pezzo di codice in Foo.Utility namepsace che vuole accedere al web .config dall'applicazione Foo e leggere la configurazione valori

Configuration config = WebConfigurationManager.OpenWebConfiguration(null); 
string cacheDir = config.AppSettings.Settings["abc"].Value; 

Attualmente config.FilePath = C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ web.config

cambiato il mio codice di :

Configuration config = WebConfigurationManager.OpenWebConfiguration(Assembly.GetCallingAssembly().Location); 
string cacheDir = config.AppSettings.Settings["abc"].Value; 

Ora il mio Assembly.GetCallingAssembly() La posizione è:. C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 62f5c902 \ 849205ff \ assembly \ DL3 \ c28d4647 \ 10e128d3_7449d001 \ foo.dll

Qualcuno può aiutarmi a capire come leggere il file web.config dal punto in cui viene distribuita la mia applicazione utilizzando IIS?

Per ulteriori informazioni o se la domanda non è chiara, commentare qui sotto. Lo aggiornerà

risposta

3

È necessario utilizzare ConfigurationManager da System.Configuration. In primo luogo, si dovrà aggiungere un riferimento a System.Configuration.dll assemblaggio, e quindi utilizzare in questo modo:

using System.Configuration; 
... 
string valueOfAbc = ConfigurationManager.AppSettings["abc"]; 

ConfigurationManager leggerà il file di configurazione da host dell'applicazione. Nel tuo caso, il file web.config.

Riferimento:

  1. ConfigurationManager Class
  2. Application Configuration Files
+1

Si dovrebbe notare che questo richiede un riferimento a 'System.Configuration.dll' montaggio, che non fa riferimento per impostazione predefinita. – mason

+0

@mason Hai ragione. Modificherò la risposta. Grazie! –

Problemi correlati