Cenni preliminari sulle API di configurazione di ASP.NET
Aggiornamento: novembre 2007
L'API di configurazione ASP.NET consente di sviluppare, distribuire e gestire i dati di configurazione dell'applicazione utilizzando un'unica interfaccia di programmazione. È possibile utilizzare l'API di configurazione per sviluppare e modificare configurazioni ASP.NET complete a livello di codice senza intervenire direttamente sulla parte XML dei file di configurazione. È inoltre possibile utilizzare l'API di configurazione nelle applicazioni console e negli script sviluppati, negli strumenti di gestione basati sul Web e negli snap-in Microsoft Management Console (MMC). Di seguito sono riportati i due strumenti per la gestione della configurazione inclusi in .NET Framework versione 2.0 che prevedono l'utilizzo dell'API di configurazione:
Snap-in MMC ASP.NET, in cui l'API di configurazione viene utilizzata per semplificare le attività amministrative, fornendo in tal modo una visualizzazione integrata dei dati di configurazione locali provenienti da tutti i livelli della gerarchia di configurazione.
Strumento Amministrazione sito Web, che consente di gestire le impostazioni di configurazione per le applicazioni locali e remote, inclusi i siti ospitati.
L'API di configurazione ASP.NET è separata dall'API di configurazione a livello di codice di Internet Information Services (IIS). Per ulteriori informazioni, vedere Using IIS Programmatic Administration.
Funzionalità dell'API di configurazione
Nell'API di configurazione ASP.NET è incluso un insieme di oggetti di gestione ASP.NET che consentono di configurare siti Web e applicazioni a livello di codice. Tali oggetti vengono implementati sotto forma di libreria di classi .NET Framework. Il modello di programmazione dell'API di configurazione garantisce la coerenza e l'affidabilità del codice mediante l'applicazione dei tipi di dati in fase di compilazione.
Per semplificare la gestione delle configurazioni di applicazioni, l'API di configurazione consente di visualizzare i dati uniti di tutti i punti della gerarchia di configurazione come insieme unico anziché come insiemi distinti provenienti da file di configurazione diversi. L'API consente inoltre di modificare intere configurazioni di applicazioni senza intervenire direttamente sulla parte XML dei file di configurazione. Infine, semplifica le attività di configurazione grazie al supporto di strumenti amministrativi come Amministrazione sito Web.
L'API di configurazione agevola le operazioni di distribuzione mediante la creazione di file di configurazione su un computer e la successiva esecuzione di script di configurazione su più computer.
L'API di configurazione non include il supporto per la creazione di applicazioni IIS. Per informazioni sulla scrittura di applicazioni amministrative per IIS, vedere Using System.DirectoryServices to Configure IIS nell'SDK di IIS.
Utilizzo di impostazioni di configurazione locali e remote
Un oggetto Configuration rappresenta la visualizzazione unita delle impostazioni di configurazione applicate a un'entità fisica specifica, ad esempio un computer, o a un'entità logica, ad esempio un'applicazione o un sito Web. L'entità logica specificata può trovarsi sul computer locale o su un server remoto.
Se per un'entità specificata non sono presenti file di configurazione, l'oggetto Configuration rappresenta le impostazioni di configurazione predefinite indicate nel file Machine.config.
Per ottenere un oggetto Configuration, è possibile utilizzare uno dei metodi di configurazione aperti dalle classi riportate di seguito:
Classe ConfigurationManager, se l'entità è un'applicazione client.
Classe WebConfigurationManager, se l'entità è un'applicazione Web.
Questi metodi restituiscono un oggetto Configuration che, a sua volta, fornisce le proprietà e i metodi necessari per gestire i file di configurazione sottostanti. A questi file è possibile accedere per eseguire operazioni di lettura e scrittura.
Lettura È possibile utilizzare il metodo GetSection o GetSectionGroup per leggere le informazioni di configurazione. L'utente o il processo che esegue l'operazione di lettura deve disporre delle autorizzazioni appropriate per tutti i file di configurazione della gerarchia.
Nota: Se si utilizza un metodo statico GetSection che accetta un parametro path, quest'ultimo deve fare riferimento all'applicazione in cui viene eseguito il codice. In caso contrario, il parametro viene ignorato e vengono restituite le informazioni di configurazione dell'applicazione attualmente in esecuzione.
Scrittura È possibile utilizzare uno dei metodi Save per scrivere le informazioni di configurazione. L'utente o il processo che esegue l'operazione di scrittura deve disporre sia delle autorizzazioni di scrittura appropriate per il file e la directory di configurazione al livello corrente della gerarchia che delle autorizzazioni di lettura per tutti i file di configurazione della gerarchia.
Per generare un file di configurazione che rappresenti le impostazioni di configurazione ereditate per un'entità specificata, utilizzare uno dei seguenti metodi di configurazione per il salvataggio:
Metodo Save per la creazione di un nuovo file di configurazione.
Metodo SaveAs per la generazione di un nuovo file di configurazione in un altro percorso.
Nota: |
---|
Per consentire l'accesso alle impostazioni di configurazione su un computer remoto, utilizzare lo strumento della riga di comando Aspnet_regiis. Per ulteriori informazioni su questo strumento, vedere Strumento di ASP.NET per la registrazione di IIS (Aspnet_regiis.exe). Per informazioni sulla creazione e l'accesso a impostazioni di configurazione personalizzate diverse dalle sezioni intrinseche incluse in .NET Framework, vedere ConfigurationSection. |
Esempi di codice
In una pagina ASP.NET è possibile utilizzare il codice riportato di seguito per ottenere informazioni di configurazione relative all'applicazione in cui viene eseguita la pagina. In questo esempio di codice viene utilizzato il metodo statico WebConfigurationManager.GetSection.
System.Web.Configuration.UrlMappingsSection urlMaps =
(System.Web.Configuration.UrlMappingsSection)
System.Web.Configuration.WebConfigurationManager.GetSection(
"system.web/urlMappings");
Bool urlMappingsEnabled = urlMaps.IsEnabled;
In un'applicazione ASP.NET o client è possibile utilizzare il codice riportato di seguito per ottenere informazioni di configurazione relative a un'altra applicazione. In questo esempio di codice viene utilizzato il metodo non statico GetSection dell'oggetto System.Configuration.Configuration.
System.Configuration.Configuration config =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(
"/SampleWebApp");
System.Web.Configuration.UrlMappingsSection urlMaps =
(System.Web.Configuration.UrlMappingsSection)
System.Web.Configuration.WebConfigurationManager.GetSection(
"system.web/urlMappings");
bool urlMappingsEnabled = urlMaps.IsEnabled;
Spazi dei nomi e classi di configurazione
Numerosi metodi e classi di configurazione sono simili tra loro. Nella tabella riportata di seguito vengono descritti gli spazi dei nomi e le classi di configurazione maggiormente utilizzati. Per informazioni sugli scenari di utilizzo e gli esempi di codice relativi a tali classi e spazi dei nomi, vedere Utilizzo delle classi di configurazione.
Spazio dei nomi o classe di configurazione |
Descrizione |
---|---|
Spazio dei nomi System.Configuration |
Contiene le principali classi di configurazione per tutte le applicazioni .NET Framework, incluse le classi dei gestori delle sezioni di configurazione client .NET Framework definite in Schema dei file di configurazione per .NET Framework. Le classi dei gestori delle sezioni consentono di ottenere i dati di configurazione di una sezione da metodi quali GetSection e GetSectionGroup. Questi due metodi non sono statici. Per ulteriori informazioni, vedere la precedente sezione Utilizzo di metodi statici e non statici in questo argomento. Le classi dei gestori di sezioni ASP.NET sono contenute nello spazio dei nomi System.Web.Configuration. |
Rappresenta un insieme di dati di configurazione relativi a un computer, un'applicazione, una directory Web o un'altra risorsa. Un'istanza della classe Configuration corrisponde alle impostazioni di configurazione unite presenti nella gerarchia. Questa classe contiene metodi, quali GetSection e GetSectionGroup, utili per l'aggiornamento delle impostazioni di configurazione e per il recupero di riferimenti a sezioni e gruppi di sezioni. Questi due metodi non sono statici. Per ulteriori informazioni, vedere la precedente sezione Utilizzo di metodi statici e non statici in questo argomento. La classe viene utilizzata come tipo restituito per i metodi, ad esempio quelli delle classi WebConfigurationManager e ConfigurationManager, che ottengono dati di configurazione in fase di progettazione. |
|
Spazio dei nomi System.Web.Configuration |
Contiene le classi dei gestori delle sezioni di configurazione ASP.NET definite in Impostazioni di configurazione di ASP.NET. Le classi dei gestori delle sezioni consentono di ottenere i dati di configurazione di una sezione da metodi quali GetSection e GetSectionGroup. Questi due metodi sono statici. Per ulteriori informazioni, vedere la precedente sezione Utilizzo di metodi statici e non statici in questo argomento. |
Fornisce metodi utili per ottenere riferimenti alle impostazioni di configurazione in fase di esecuzione e di progettazione. Tali metodi utilizzano la classe System.Configuration.Configuration come tipo restituito. È possibile utilizzare indifferentemente il metodo statico GetSection di questa classe o il metodo non statico GetSection della classe System.Configuration.ConfigurationManager. Per ulteriori informazioni, vedere la precedente sezione Utilizzo di metodi statici e non statici in questo argomento. Per le configurazioni di applicazioni Web si consiglia di utilizzare la classe System.Web.Configuration.WebConfigurationManager e non la classe System.Configuration.ConfigurationManager. |
|
Spazio dei nomi System.Configuration.Provider |
Consente di personalizzare ed estendere il provider di configurazione, la classe base di tutte le classi di provider del sistema di configurazione. |
Spazio dei nomi System.Web.Management |
Contiene le classi e le interfacce per la gestione e il monitoraggio dello stato delle applicazioni Web. Questo spazio dei nomi non è considerato parte dell'API di configurazione in senso stretto. Le classi di questo spazio dei nomi consentono ad esempio di eseguire operazioni di analisi e generazione di eventi. Per ulteriori informazioni, vedere Risoluzione dei problemi e debug di ASP.NET. |
Spazio dei nomi System.Management.Instrumentation |
Contiene le classi di strumentazione necessarie alle applicazioni per esporre gli eventi e le informazioni sulla gestione a potenziali consumer attraverso la Strumentazione gestione Windows (WMI). Il monitoraggio dello stato ASP.NET prevede l'utilizzo di WMI per la distribuzione degli eventi. Questo spazio dei nomi non è considerato parte dell'API di configurazione in senso stretto. |
Struttura dell'ereditarietà delle classi di configurazione
Nel diagramma riportato di seguito vengono illustrate le relazioni di ereditarietà tra le classi dello spazio dei nomi System.Web.Configuration e quelle dello spazio dei nomi System.Configuration. Il diagramma consente di individuare le proprietà e i metodi disponibili per l'oggetto per il quale è stata creata un'istanza e come ottenere ulteriori informazioni.
Struttura di aggregazione delle classi di configurazione
Nel diagramma riportato di seguito vengono illustrate le relazioni di aggregazione tra le classi dello spazio dei nomi System.Web.Configuration e quelle dello spazio dei nomi System.Configuration. Il diagramma consente di individuare le classi per le quali sono state create istanze come oggetti all'interno di altre classi.
Generazione di strumenti specializzati
Per consentire a diversi amministratori di gestire le risorse assegnate, ad esempio applicazioni o siti Web specifici, limitando nel contempo le azioni eseguibili su altre risorse, è possibile sviluppare strumenti di amministrazione che utilizzino l'API di configurazione ASP.NET per esporre solo le impostazioni di configurazione necessarie allo svolgimento delle attività amministrative, negando l'accesso ad altre impostazioni. In questo modo, agli amministratori vengono concesse le autorizzazioni necessarie e le risorse risultano protette poiché viene eliminata la necessità di accedere direttamente ai file di configurazione.
Strumenti per più server
Per la gestione di più server può essere necessario distribuire e gestire le stesse applicazioni ASP.NET su ciascun server. La gestione di una Web farm, ad esempio, può richiedere l'esecuzione delle seguenti attività:
Scrittura di uno script che consenta di configurare la stessa applicazione ASP.NET su uno o su tutti i server della Web farm.
Blocco di alcuni dei file utilizzati per ciascuna istanza dell'applicazione.
Automazione di un controllo in cui vengano registrate le configurazioni delle applicazioni distribuite al fine di garantire la stessa configurazione dell'installazione su ogni computer.
Esecuzione di una modifica alla configurazione una sola volta, quindi estensione della modifica a tutte le istanze dell'applicazione, ovunque siano installate.
L'API di configurazione ASP.NET supporta inoltre l'esecuzione batch su più server.
Creazione e gestione della configurazione con un solo strumento
Il proprietario di un sito può utilizzare lo snap-in MMC ASP.NET per creare e gestire configurazioni di applicazioni ASP.NET su un computer. Tale snap-in espone le funzionalità dell'API di configurazione ASP.NET mediante un'interfaccia utente grafica che fornisce una visualizzazione unificata delle impostazioni di configurazione provenienti da più file di configurazione, relative ad esempio a sessioni, protezione, errori e analisi. Le impostazioni possono essere modificate senza intervenire direttamente sulla parte XML dei file di configurazione. Per ulteriori informazioni, vedere la classe Snap-in MMC per ASP.NET.
Vedere anche
Attività
Procedura: accedere alle impostazioni di configurazione ASP.NET a livello di codice
Procedura: leggere le impostazioni dell'applicazione dal file Web.config
Procedura: leggere stringhe di connessione dal file Web.config
Concetti
Utilizzo delle classi di configurazione