HOW TO: Configurare SQL Server per l'archiviazione dello stato di sessione ASP.NET

Sommario

In questo articolo verrà illustrato come configurare Microsoft SQL Server per la gestione dello stato di sessione in modalità SQL Server ASP.NET.

Requisiti

Nell'elenco riportato di seguito sono indicati l'hardware, il software, l'infrastruttura di rete e i service pack necessari:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server o Microsoft Windows XP
  • Microsoft .NET Framework
  • Microsoft Internet Information Services (IIS)
  • Microsoft SQL Server

Configurazione di SQL Server per lo stato di sessione ASP.NET

Nei passaggi seguenti verrà descritto come eseguire i file script InstallSqlState.sql e UninstallSqlState.sql per configurare la gestione dello stato di sessione in modalità SQL Server.
  1. In SQL Query Analyzer scegliere Apri dal menu File.
  2. Nella finestra di dialogo Apri file di query individuare il file script InstallSqlState.sql, quindi scegliere Apri. Per impostazione predefinita, InstallSqlState.sql si trova in una delle seguenti cartelle:
    unità di sistema\WINNT\Microsoft.NET\Framework\versione\

    unità di sistema\Windows\Microsoft.NET\Framework\versione\
  3. Dopo aver aperto InstallSqlState.sql in SQL Query Analyzer, scegliere Esegui dal menu Query per eseguire lo script.
  4. Prima di eseguire il file script UninstallSqlState.sql per disinstallare la configurazione per la gestione dello stato di sessione in modalità SQL Server, è necessario arrestare il processo w3svc. Per effettuare questa operazione, attenersi alla seguente procedura:
    1. Scegliere Esegui dal menu Start di Windows, digitare cmd, quindi scegliere
      OK per aprire il prompt dei comandi.
    2. Al prompt dei comandi digitare net stop w3svc. Si riceverà la conferma che il processo w3svc è stato arrestato.
  5. In SQL Query Analyzer scegliere Apri dal menu File.
  6. Nella finestra di dialogo Apri file di query individuare il file script UninstallSqlState.sql, quindi scegliere Apri. Per impostazione predefinita, UninstallSqlState.sql si trova in una delle seguenti cartelle:
    unità di sistema\WINNT\Microsoft.NET\Framework\versione\

    unità di sistema\Windows\Microsoft.NET\Framework\versione\
  7. Dopo aver aperto UninstallSqlState.sql in SQL Query Analyzer, scegliere Esegui dal menu Query per eseguire lo script.
  8. Dopo aver disinstallato la configurazione per la gestione dello stato di sessione in modalità SQL Server, è necessario riavviare il servizio w3svc. Per riavviare il processo w3svc, digitare net start w3svc al prompt dei comandi.

Modifica del file Web.config dell'applicazione

Per implementare la gestione dello stato di sessione in modalità SQL Server ASP.NET, è necessario modificare l'elemento <sessionState> nel file Web.config dell'applicazione nel modo seguente:
  1. Impostare l'attributo mode dell'elemento <sessionState> su SQLServer per indicare che lo stato della sessione è archiviato in SQL Server.
  2. Impostare l'attributo sqlConnectionString per specificare la stringa di connessione per SQL Server. Ad esempio:
    sqlConnectionString="data source=MySQLServer;user id=<username>;password=<strongpassword>"

    Nota L'utente <nome utente> deve disporre delle autorizzazioni per eseguire questa operazione sul database.

    L'elemento <sessionState> modificato dovrebbe apparire come segue:
    <sessionState 
    mode="SQLServer"
    sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
    cookieless="false"
    timeout="20"
    />
    Nota Accertarsi di utilizzare correttamente maiuscole e minuscole quando si specifica l'elemento <sessionState> e i valori associati agli attributi. In questo frammento di codice viene fatta distinzione fra lettere maiuscole e minuscole.

Risoluzione dei problemi

  • Se il processo w3svc non viene arrestato prima di eseguire il file script UninstallSqlState.sql, verrà visualizzato un messaggio di errore analogo al seguente:
    Il database "ASPState" è in uso. Impossibile eliminarlo.
  • Se le voci nella tabella ASPStateTempSessions non vengono rimosse dopo che le relative sessioni sono scadute, verificare che l'agente SQL Server sia in esecuzione. Questa funzionalità può essere implementata tramite stored procedure pianificate mediante processi in SQL Server. Tali processi sono gestiti dall'agente SQL Server.
  • Quando si utilizzano i file script predefiniti InstallSqlState.sql e UninstallSqlState.sql per configurare la gestione dello stato di sessione in modalità SQL Server ASP.NET, per impostazione predefinita vengono aggiunte le tabelle ASPStateTempSessions e ASPStateTempApplications al database tempdb in SQL Server. Inoltre, se si riavvia SQL Server, i dati relativi allo stato di sessione archiviati nelle tabelle ASPStateTempSessions e ASPStateTempApplications vengono persi.Per ulteriori informazioni su come eseguire script alternativi per configurare la gestione dello stato di sessione SQL Server senza perdere i dati quando si riavvia il server, fare clic sul numero dell'articolo della Knowledge Base riportato di seguito:
    311209 HOW TO: Configurare ASP.NET per la gestione dello stato di sessione di SQL Server persistente

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
305140 INFO: Guida di orientamento per ASP.NET
307598 INFO: Panoramica sulla gestione dello stato ASP.NET
236166 Utilizzo dei comandi NET STOP e NET START per imporre ai servizi IIS la rilettura del Registro di sistema
Per ulteriori informazioni sulla gestione dello stato di sessione ASP.NET, vedere i seguenti siti Web Microsoft (informazioni in lingua inglese):
Session State
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Cutting Edge: Using Session and Application Objects in ASP.NET (articolo di MSDN Magazine)
http://msdn.microsoft.com/msdnmag/issues/01/11/cutting/default.aspx
Proprietà

ID articolo: 317604 - Ultima revisione: 14 lug 2008 - Revisione: 1

Feedback