Ho cercato questo errore che si verifica a intermittenza su una chiamata AJAX a un sito Web ASP.NET di Azure e che oggi ho finalmente rilevato nei nostri registri. Sospettavo che un blocco bloccasse l'operazione, ma sembra che non sia riuscito a connettersi al database SQL di Azure.Timeout connessione intermittente in SQL Azure su richiesta AJAX
Ecco il messaggio di eccezione:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
This failure occurred while attempting to connect to the routing destination.
The duration spent while attempting to connect to the original server was -
[Pre-Login] initialization=28; handshake=43; [Login] initialization=0; authentication=0; [Post-Login] complete=2;
Questa è la stringa di connessione che sto usando:
Server=tcp:<server>,1433;Database=<database>;User ID=<user>;Password=<password>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30
Sia il sito web e il database SQL Azure sono nella stessa regione. La scala del database è Standard - S0 e il sito Web di Azure è uno standard - Piccola istanza.
Qualcuno di voi ha riscontrato questo problema?
Ciò avviene in modo intermittente o coerente? Avete una gestione transitoria dei guasti e una logica di riprova integrata nel vostro codice? Leggi http://azure.microsoft.com/en-us/documentation/articles/sql-database-connect-central-recommendations/ per consigli e best practice. – Shantanu
@ Shantanu Grazie per il suggerimento. Penso che l'utilizzo della gestione dei guasti transitori sia la soluzione giusta, ma forse non per il problema che sto cercando di risolvere. L'applicazione è una serie di domande che un utente chiede a un individuo al telefono, quindi registra la risposta. Causa problemi all'utente se questo richiede più di 5 secondi. Ho aggiornato il database a Standard S2 che sembra aver risolto il problema di timeout. – TheJesterCrown
Che tipo di carico vedi per la tua app? Quanti utenti concorrenti? – Shantanu