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