Struttura dei file di configurazione ASP.NET (Sezioni e gestori della sezione)
Aggiornamento: novembre 2007
Tutte le informazioni sulla configurazione di ASP.NET risiedono nell'elemento configuration nei file Web.config. All'interno di questo elemento le informazioni sulla configurazione sono raggruppate in due aree principali: l'area di dichiarazione del gestore della sezione di configurazione e l'area delle impostazioni della sezione di configurazione.
Dichiarazioni del gestore della sezione di configurazione
L'area di dichiarazione del gestore della sezione di configurazione risiede all'interno dell'elemento configSections nei file Web.config. Contiene gli elementi section della configurazione ASP.NET in cui sono dichiarati i gestori della sezione. Tali dichiarazioni del gestore della sezione di configurazione possono essere nidificati negli elementi sectionGroup per facilitare l'organizzazione delle informazioni sulla configurazione. Generalmente gli elementi sectionGroup rappresentano lo spazio dei nomi in cui vengono applicate le impostazioni di configurazione. Tutti i gestori della sezione di configurazione ASP.NET, ad esempio, sono raggruppati nel gruppo della sezione system.web, come illustrato nell'esempio di codice seguente:
<sectionGroup name="system.web"
type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<!-- <section /> elements. -->
</sectionGroup>
Nell'area delle impostazioni della sezione di configurazione è disponibile una dichiarazione del gestore della sezione per ogni sezione di configurazione. Un gestore della sezione è una classe .NET Framework che implementa l'interfaccia ConfigurationSection. Le dichiarazioni del gestore della sezione contengono il nome di una sezione delle impostazioni di configurazione, ad esempio pages e il nome della classe del gestore della sezione che elabora i dati di configurazione in quella sezione, ad esempio System.Web.Configuration.PagesSection. La situazione viene illustrata nell'esempio di codice riportato di seguito.
<section name="pages"
type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
</section>
Un gestore della sezione di configurazione deve essere dichiarato una sola volta. I gestori relativi alle sezioni di configurazione ASP.NET predefiniti sono già dichiarati nel file Machine.config predefinito. Il file Web.config principale e altri file di configurazione delle applicazioni ASP.NET ereditano automaticamente i gestori di configurazione dichiarati nel file Machine.config. Se si crea una classe del gestore della sezione personalizzato che gestisce una delle sezioni delle impostazioni personalizzate, sarà necessario solo dichiarare un nuovo gestore.
Le sezioni delle impostazioni di configurazione ASP.NET predefinite sono elencate in Impostazioni di configurazione di ASP.NET. Per informazioni sulla definizione delle sezioni delle impostazioni personalizzate e sullo sviluppo di gestori della sezione di configurazione che ne consentano la gestione, vedere Classi per la creazione di gestori delle sezioni personalizzati e Procedura: creare sezioni di configurazione personalizzate tramite ConfigurationSection.
Impostazioni delle sezioni di configurazione
L'area delle impostazioni della sezione di configurazione segue l'area di dichiarazione del gestore della sezione di configurazione e contiene le impostazioni di configurazione effettive.
Per impostazione predefinita, per ogni elemento section e sectionGroup nell'area configSections è specificato un elemento della sezione di configurazione, internamente o in uno dei file di configurazione principali. È possibile visualizzare le impostazioni predefinite nel file systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Machine.config.comments.
Un elemento della sezione di configurazione può contenere anche elementi figlio gestiti dallo stesso gestore della sezione dell'elemento padre. L'elemento pages, ad esempio, contiene un elemento namespaces a cui non corrisponde alcun gestore della sezione in quanto è gestito dal gestore della sezione pages.
<pages
buffer="true"
enableSessionState="true"
asyncTimeout="45"
<!-- Other attributes. -->
>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
</namespaces>
</pages>
Esempio tratto da un file Web.config
Nell'esempio di codice riportato di seguito vengono illustrate le parti degli esempi di codice precedenti che è possibile inserire in un file Web.config. L'elemento namespaces dell'elemento pages non dispone di una dichiarazione del gestore della sezione di configurazione. Ciò accade in quanto il gestore delle sezione System.Web.Configuration.PagesSection gestisce tutti gli elementi figlio della sezione delle impostazioni pages.
<?xml version="1.0" encoding="us-ascii"?>
<configuration>
<!-- Configuration section-handler declaration area. -->
<configSections>
<sectionGroup name="system.web"
type="System.Web.Configuration.SystemWebSectionGroup, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<section
name="pages"
type="System.Web.Configuration.PagesSection, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/>
<!-- Other <section /> elements. -->
</sectionGroup>
<!-- Other <sectionGroup /> and <section /> elements. -->
</configSections>
<!-- Configuration section settings area. -->
<pages
buffer="true"
enableSessionState="true"
asyncTimeout="45"
<!-- Other attributes. -->
>
<namespaces>
<add namespace="System" />
<add namespace="System.Collections" />
</namespaces>
</pages>
<!-- Other section settings elements. -->
</configuration>
Considerazioni sulle attività di modifica
Poiché gli elementi delle sezioni di configurazione devono avere un formato XML corretto, viene effettuata la distinzione tra maiuscole e minuscole per gli elementi e gli attributi. La modifica delle impostazioni di configurazione può essere effettuata in diversi modi. Per ulteriori informazioni, vedere Modifica dei file di configurazione ASP.NET.
I gestori della sezione di configurazione personalizzati devono essere creati a livello di codice prima di poter utilizzare elementi della sezione personalizzata nei file di configurazione ASP.NET. Per ulteriori informazioni, vedere Procedura: creare sezioni di configurazione personalizzate tramite ConfigurationSection.
Attributi del percorso nei file di configurazione
Quando si fa riferimento a un percorso dell'applicazione Web, gli attributi path nei file Web.config possono essere preceduti dai caratteri "~/" che indicano la radice dell'applicazione. Per ulteriori informazioni, vedere Percorsi del sito Web ASP.NET.
Vedere anche
Attività
Procedura: creare sezioni di configurazione personalizzate tramite ConfigurationSection
Procedura: creare sezioni di configurazione personalizzate tramite IConfigurationSectionHandler
Altre risorse
Amministrazione di siti Web ASP.NET