L'utility aspnet_regsql (che potete trovare al percorso C:\WINDOWS\Microsoft.NET\Framework\v2.0.xxxx) serve per abilitare i database SQL Server per tutte le nuove features aggiunte nella versione 2.0 di ASP.NET; è possibile infatti abilitare tutti gli oggetti necessari per l'utilizzo dei meccanismi di Membership, Roles, Profile e Personalization.
E' possibile eseguire l'utility direttamente a riga di comando, oppure tramite la sua interfaccia grafica (esecuzione senza passaggio di alcun parametro).
Se utilizzata a riga di comando, l'utility necessita della specifica di alcuni parametri. Ecco la lista completa:

OPZIONI GENERALI

-?Visualizza questo argomento della Guida.
-WModalità guidata. Impostazione predefinita utilizzata se non sono specificati altri parametri.

OPZIONI DI CONNESSIONE SQL

-S <server>Istanza di SQL Server (SQL Server 7.0 o versione successiva) da utilizzare.
-U <ID accesso>Nome utente di SQL Server per l'autenticazione. E' richiesta l'opzione -P.
-P <password>Password di SQL Server per l'autenticazione. E' richiesta l'opzione -U.
-EEsecuzione dell'autenticazione con le credenziali di Windows correnti.
-C <stringa di connessione>Stringa di connessione. Anziché‚ specificare nome utente, password e nome del server, è possibile specificare una stringa di connessione di SQL Server. Tale stringa non deve contenere un nome di database, a meno che non venga specificato diversamente.
-sqlexportonly <nomefile>Generazione del file script SQL per l'aggiunta o la rimozione delle funzionalità specificate, senza eseguire l'operazione effettiva. Sono supportate le opzioni seguenti: -A, -R, -ssadd e -ssremove.

OPZIONI DEI SERVIZI APPLICATIVI

-A all|m|r|p|c|wAggiunge il supporto per una funzionalità. E' possibile specificare più valori contemporaneamente, ad esempio:
-A mp
-A m -A p

all: tutte le funzionalità
m: appartenenza
r: Gestione ruoli
p: profili
c: personalizzazione
w: provider di eventi Web SQL
-R all|m|r|p|c|w Rimozione del supporto per una funzionalità. E' possibile specificare più valori contemporaneamente, ad esempio:
-R mp
-R m -R p

all : tutte le funzionalità, oltre alle tabelle comuni e alle stored procedure condivise dalle funzionalità
m: appartenenza
r: Gestione ruoli
p: profili
c: personalizzazione
w: provider di eventi Web SQL
-d <database>Nome del database da utilizzare con i servizi applicativi. Se non si specifica il nome del database, verrà utilizzato il database predefinito "aspnetdb".
-QModalità non interattiva. Non chiede di confermare la rimozione delle funzionalità.

OPZIONI RELATIVE ALLA DIPENDENZA DELLA CACHE SQL (PER SQL SERVER 7.0 E 2000)

-d <database>Nome del database da utilizzare con la dipendenza della cache SQL in SQL 7.0 e SQL 2000. In alternativa, il nome del database può essere specificato utilizzando la stringa di connessione con l'opzione -C. (Richiesto
-edAttivazione di un database per la dipendenza della cache SQL.
-ddDisattivazione di un database per la dipendenza della cache SQL.
-etAttivazione di una tabella per la dipendenza della cache SQL. E' richiesta l'opzione -t.
-dtDisattivazione di una tabella per la dipendenza della cache SQL. E' richiesta l'opzione -t.
-t <tabella>Nome della tabella da attivare o disattivare per la dipendenza della cache SQL. E' richiesta l'opzione -et o -dt.
-ltElenco di tutte le tabelle attivate per la dipendenza della cache SQL.

OPZIONI STATO SESSIONE

-ssaddAggiunta del supporto per lo stato sessione in modalità SQLServer.
-ssremoveRimozione del supporto per lo stato sessione in modalità SQLServer.
-sstype t|p|cTipo di supporto dello stato sessione:

t: temporaneo. I dati dello stato sessione vengono archiviati nel database "tempdb", mentre le stored procedure per la gestione della sessione vengono installate nel database "ASPState". Se si riavvia SQL Server, i dati non vengono mantenuti. (Impostazione predefinita)

p: persistente. Sia le stored procedure che i dati dello stato sessione vengono archiviati nel database "ASPState".

c: personalizzazione. Sia le stored procedure che i dati dello stato sessione vengono archiviati in un database personalizzato. E' necessario specificare il nome del database.
-d <database>Nome del database personalizzato da utilizzare se -sstype è "c".

(testo prelevato direttamente dall'utility aspnet_sqlreg, attraverso l'attributo -?)


Se però abbiamo deciso di utilizzare un database SQL Server 2005 Express Edition, senza specificare il nome del server (attributo –S) o specificando il nome del computer su cui è installato SQL Server come nome del server, ecco che la nostra operazione sarà stoppata da questo messaggio di errore:

................Errore. Dettagli dell'eccezione:
Si è verificato un errore mentre si cercava di stabilire una connessione con il server. Quando ci si connette a SQL Server 2005, questo errore potrebbe essere provocato dal fatto che l'SQL Server non ammette connessioni remote sotto le impostazioni predefinite. (provider: Provider Named Pipes, error: 40 - Impossibile aprire una connessione a SQL Server)

Impossibile connettersi al database SQL per la registrazione delle dipendenze della cache.

Dove sbagliamo ?
Semplice, come nome del server va specificato un punto (.) seguito dal nome dell’istanza SQL Server installata nel computer. Il valore di tale istanza può essere estrapolato dal nome del servizio di sql server (MSSQL$), visualizzabile anche tramite l'utility Sql Server Configuration Manager. Il valore di default di tale istanza è SQLEXPRESS.
Ecco un esempio di utilizzo dell'utility aspnet_regsql con un esecuzione a buon fine:

aspnet_regsql –E –S .\SQLEXPRESS –A all