Come posso eliminare i problemi di timeout del mio sito?

Utente HTML.it
chiede

Come posso eliminare i problemi di timeout del mio sito?

Redazione HTML.it
risponde

Solitamente i problemi di timeout sono dovuti alla connessione con il database. Per eliminare questo errore, si può provare ad aumentare il timeout per il collegamento, aggiungendo il parametro Connect Timeout nella stringa di connessione:

Data Source=.SQLEXPRESS;Initial Catalog=Segreteria;Integrated Security=True;Connect Timeout=120

In questo esempio il timeout per stabilire la connessione con il database viene impostato su 120 secondi (il valore predefinito è 15).

In alcuni casi, basta la modifica di tale impostazione per risolvere l’inconveniente. Se, invece, i problemi di timeout persistono, è necessario intervenire anche sul timeout utilizzato per l’esecuzione dei comandi SQL, agendo sulla proprietà CommandTimeout dell’oggetto DbCommand (o sua specializzazione):

SqlConnection conn = new SqlConnection("Data Source=.SQLEXPRESS;Initial Catalog=Segreteria;Integrated Security=True;Connect Timeout=120");
conn.Open();
DbCommand cmd = conn.CreateCommand();
cmd.CommandTimeout = 60;

Con l’ultima istruzione configuriamo il timeout di esecuzione dei comandi su 60 secondi (il default è 30).

Per evitare di inserire questo valore direttamente nel codice, si consiglia di definire un parametro nel file web.config, in modo che sia possibile modificarlo senza necessità di ricompilare l’applicazione.