Problemino nell'uso della classe WebConfigurationManager
DanEsp
DanEsp non è online. Ultima attività: 26/11/2009 13.54.33DanEsp
il 25 novembre 2009 alle 08:47
13 messaggi dal 18 agosto 2006
Buon giorno a tutti, stò cercando di leggere una sezione di un file di configurazione che non è quello canonico dell'applicazione ossia il web.config, ma un mio file .config personalizzato e posizionato nella root del sito sotto la directory config/anonymous.config

Per fare ciò stò utilizzando il metodo in overload GetSection(string, string)della classe statica WebConfigurationManager.

Quindi come primo parametro passo la sezione che intendo leggere e come secondo il path del mio file "anonymous.config".

Risultato, il metodo continua a cercare la sezione che intendo recuperare nel file di configurazione principale (web.config)

Dove stò sbagliando?

Grazie per l'aiuto
Dan
RE: Problemino nell'uso della classe WebConfigurationManager
giuffrixyz
giuffrixyz non è online. Ultima attività: 05/02/2010 9.32.09giuffrixyz
il 26 novembre 2009 alle 00:29
47 messaggi dal 04 agosto 2008
Ciao Dan,
il tuo quesito mi ha incuriosito per cui, anche se non avevo mai affrontato la questione, ho fatto una piccola ricerca per capire come funzionano i file di configurazione con ASP.NET.
Vista la premessa, capirai che non ti risponderò in base a una consolidata esperienza pregressa ma solo in base a ciò che ho trovato on line e sperimentato successivamente.
In particolare faccio riferimento alle seguenti due pagine:
http://msdn.microsoft.com/it-it/library/ms151435%28VS.80%29.aspx
http://stackoverflow.com/questions/213784/in-my-codebehind-class-how-do-i-retrieve-the-authorized-roles
dalle quali mi è sembrato di capire (e così ho verificato) che i path si riferiscono alla cartella e non al file in quanto il file di configurazione deve sempre chiamarsi web.config.
Ad esempio ho provato questo:

string myPath = Request.Path;
myPath = myPath.Substring(0, myPath.LastIndexOf('/'));
myPath += "/config";
ConnectionStringsSection connectionStringsSection = WebConfigurationManager.GetSection("connectionStrings", myPath) as ConnectionStringsSection;
ConnectionStringSettingsCollection connectionStrings = connectionStringsSection.ConnectionStrings;

Label1.Text = connectionStrings["myDatabaseConnectionString"].ConnectionString;

e, similmente, questo:

string myPath = Request.Path;
myPath = myPath.Substring(0, myPath.LastIndexOf('/'));
myPath += "/config";

Configuration config = WebConfigurationManager.OpenWebConfiguration(myPath);
ConnectionStringsSection section = (ConnectionStringsSection)config.ConnectionStrings;
ConnectionStringSettingsCollection connectionStrings2 = section.ConnectionStrings;

Label1.Text = connectionStrings2["myDatabaseConnectionString"].ConnectionString;


In entrambi i casi, come vedi, ho indicato la cartella /config e non il file web.config presente dentro la cartella config (/config/web.config).
Ho completato l'esempio con l'estrazione di una ConnectionString giusto per verifica.

Spero di aver capito cosa richiedevi e cosa ho letto nei documenti indicati.
Fammi sapere, per favore.
Grazie
Salvo
RE: Problemino nell'uso della classe WebConfigurationManager
DanEsp
DanEsp non è online. Ultima attività: 26/11/2009 13.54.33DanEsp
il 26 novembre 2009 alle 08:44
13 messaggi dal 18 agosto 2006
Ciao giuffrixyz, grazie per avermi risposto.
Si, effettivamente il path è riferito alla cartella, ieri poi tramite Cristian ho chiarito il problema.
Scusami anzi scusatemi se non ho postato subito la soluzione magari sarebbe stato più utile a tutti.

Grazie mille.

 

Torna al forum |   Feed RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
COMMUNITY
ULTIMI MESSAGGI
UTENTI ONLINE
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2010.2.8