2011-11-08 11 views
9

Ho bisogno di ottenere l'istanza della configurazione corrente nella mia applicazione web. Ho scoperto che posso farlo nel modo seguente:Come posso ottenere la configurazione attuale dell'applicazione Web senza utilizzare HttpContext?

Configuration configuration = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath); 

Ma in alcune parti del mio progetto che ho alcuna HttpContext quindi ho bisogno di ottenere l'istanza della configurazione senza utilizzare il HttpContext.

+0

Eventuali duplicati di [ASP.NET OpenWebConfiguration in mancanza] (http://stackoverflow.com/questions/13936432/asp-net-openwebconfiguration-failing) –

risposta

2

Si dovrebbe essere in grado di ottenere il web.config come anche questo:

Configuration config = WebConfigurationManager.OpenWebConfiguration("/"); 
+1

questo non funziona, questo codice si apre config in% systemdisk%/inetpub/wwwroot/web.config, e non è il config di cui ho bisogno. Quando lo faccio con il parametro 'HttpContext.Current.Request.ApplicationPath' restituisce un altro web.config. –

+14

Sostituisco "/" con "~" e funziona! 'Configurazione config = WebConfigurationManager.OpenWebConfiguration ("~");' –

+0

Sì "/" ottiene il web.config radice, non web.config dell'applicazione corrente, mentre "~" sembra funzionare. – Polyfun

9

destro Lubochkn ~ fa il trucco ...

_webConfigurationManager = WebConfigurationManager.OpenWebConfiguration("~"); 
Problemi correlati