Abbiamo migrato di recente un client alla piattaforma SQL Azure nel corso di una distribuzione di produzione. Con tutti i segni esteriori, ha avuto successo: le app Web ad essa collegate stanno funzionando.SQL Azure - Connessioni non riuscite - Ma nessun problema?
Tuttavia, quando guardiamo al monitor di Azure, vediamo molte connessioni fallite. Non siamo stati in grado di trovare molta documentazione che spieghi cosa costituisce una connessione fallita. E nessuno dei nostri utenti ha segnalato problemi. Qualcuno sa come potrebbe essere?
Utilizzando la query di esempio da questo articolo (View Connection Issues on an SQL Azure Instance)
SELECT
[Date From] = EL.[start_time],
[Date To] = EL.[end_time],
[Database Name] = EL.[database_name],
[Event Type] = EL.[event_type],
[Event Sub Type] = EL.[event_subtype_desc],
[Description] = EL.[description],
[Additional Data] = EL.additional_data
FROM sys.event_log EL
WHERE EL.event_type != 'connection_successful'
AND EL.event_subtype_desc != 'idle_connection_timeout'
ORDER BY [Date From] DESC
Vediamo risultati come questo:
2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:35:00.0000000 2013-04-19 16:40:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:35:00.0000000 2013-04-19 16:40:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:30:00.0000000 2013-04-19 16:35:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:30:00.0000000 2013-04-19 16:35:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:25:00.0000000 2013-04-19 16:30:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:25:00.0000000 2013-04-19 16:30:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:20:00.0000000 2013-04-19 16:25:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:20:00.0000000 2013-04-19 16:25:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:15:00.0000000 2013-04-19 16:20:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
E un esempio della nostra stringa di connessione, come richiesto:
<add name="[MyContext]"
providerName="System.Data.SqlClient"
connectionString="
Server=tcp:[machine].database.windows.net,1433;
Database=[database];
User ID=[user]@[machine];
Password=[password];
Trusted_Connection=False;
Encrypt=True;
Connection Timeout=30;"/>
Avete verificato [questa documentazione] (http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx), e il [TN Riprova Logic per errori transitori è Database SQL di Windows Azure] (http://social.technet.microsoft.com/wiki/contents/articles/4235.retry-logic-for-transient-failures-in-windows-azure-sql-database.aspx) – astaykov
I ho appena trovato lo stesso articolo di recente. Controlla la domanda aggiornata, ho aggiunto i risultati di una query sul registro eventi e sembrano tutti errori "blocked_by_firewall", anche se nessuno dei nostri utenti sta segnalando problemi ... –
Dove sono le applicazioni che si collegano a SQL Da dove corre l'azzurro? Sei sicuro di aver fornito l'accesso per tutti gli indirizzi IP che ne hanno bisogno? Qualcuno delle applicazioni si connette da un intervallo di IP o ha IP assegnati dinamicamente? Puoi pubblicare il formato delle tue stringhe di connessione? – greg84