Configurare ASP.NET con il web.config

di Daniele Bochicchio, in ASP.NET,

ASP.NET, a differenza di Classic ASP, prevede un meccanismo di configurazione delle opzioni dell'applicazione web basato su un semplice file di testo, chiamato web.config .

ASP.NET utilizza in modo intensivo XML quale formato di configurazione per le sue indubbie capacità di descrizione di informazioni, che lo rendono unico e molto facile da implementare.

All'interno di questo file, che si può modificare anche con il semplice blocco note di Windows, sono contenute le impostazioni, con codifica XML (e quindi case sensitive e con tag di apertura e chisura).

Questo rende la configurazione immediata e potente allo stesso tempo.

ASP.NET dunque non si affida ad IIS per la configurazione dell'applicazione ed è per questo più semplice modificare le impostazioni di base anche senza avere accesso fisicamente al server.

Quando si parla di XCopy deployment , ovvero di messa online di un sito con la semplice copia di tutti i files, è tutto vero e questo ne è uno degli esempi.

Una prima occhiata

Un tipico web.config potrebbe essere questo qui riportato:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <appSettings>
   <add key="ConnectionString"
   value="server=localhost;database=aspnetforums;trusted_connection=true;"/>
  <add key="MaximumRequests" value="2" />
</appSettings>

  <system.web>
    <httpRuntime delayNotificationTimeout="60" />

    <compilation debug="true"/>

    <customErrors mode="RemoteOnly" defaultRedirect="errorpage.html">
     <error statusCode="404" redirect="404.html" />
    </customErrors>

   <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />

   <sessionState 
     mode="Off"
     cookieless="false" 
     timeout="20" 
   />

    <globalization culture="IT-it"
     uiCulture="IT-it"
     requestEncoding="latin9"
     responseEncoding="latin9"
    />
  
</system.web>
</configuration>

Ora cerchiamo di analizzare nel dettaglio le principali opzioni impostabili attraverso questo file.

Lo stato della Sessione

ASP.NET supporta un meccanismo di gestione dello stato della Sessione molto complesso e che permette di utilizzare differenti combinazioni, anche per supportare web farm, ovvero siti che risiedono su più server.

Nell'esempio precedente lo stato della Sessione è stato disabilitato. Ovviamente in questo modo si perde il supporto per le variabili Session.

Ecco invece cosa è possibile specificare dal web.config:

<configuration> 
  <system.web> 
    <sessionState timeout="10" 
     mode="Off|Inproc|SQLServer|StateServer" 
     stateConnectionString="tcpip=127.0.0.1:42424" 
     sqlConnectionString="?" 
     cookieless="false" 
    /> 
  </system.web> 
</configuration>

Analizziamo nel dettaglio le varie opzioni.

La proprietà timeout serve per impostare il timeout (ovvero il tempo che deve trascorrere dall'ultima richiesta prima che la Sessione scada realmente). Va specificato in minuti.

La proprietà mode, invece, indica in che modo deve essere gestita la Sessione stessa:

  • Off: stato disattivato.
  • Inproc : all'interno del processo     ASP.NET, come con Classic ASP. Ovviamente non sarà possibile sfruttare le     Session all'interno di una web farm.
  • SQLServer : demandando la gestione a SQL     Server.
  • StateServer : la gestione viene affidata ad un     particolare servizio, che risponde ad una porta specifica (la 42424), a     cui tutti i server della server farm faranno riferimento.

Analogamente le proprietà sqlConnectionString e stateConnectionString servono per definire la fonte a cui agganciarsi per gestire lo stato della Sessione.

Infine, l'ultimo parametro, cookieless, indica se devono essere utilizzati i cookie come veicolo per tenere traccia del famoso SessionID, oppure no. In quest'ultimo caso, verrà aggiunto automaticamente un testo agli indirizzi presenti sulla pagina, un po' come quelli che si trovano ad esempio su Amazon.

3 pagine in totale: 1 2 3
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti