Niedawno przeprowadziliśmy migrację klienta na platformę SQL Azure w trakcie wdrożenia produkcyjnego. Wszystkie znaki zewnętrzne zakończyły się sukcesem: wszystkie aplikacje internetowe połączone z nim działają.SQL Azure - połączenia zakończone niepowodzeniem - ale żadnych problemów?
Jednak gdy patrzymy na monitor Azure, widzimy wiele nieudanych połączeń. Nie byliśmy w stanie znaleźć wiele dokumentacji wyjaśniającej, co stanowi nieudane połączenie. I nikt z naszych użytkowników nie zgłaszał problemów. Czy ktoś wie, jak to możliwe?
Korzystanie zapytania próbki z tego artykułu (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
Widzimy wyniki tak:
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
a przykładem naszej ciąg połączenia, zgodnie z wnioskiem:
<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;"/>
czy wyrejestrowany [dokumentacja ta] (http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx) i [TN Retry Logika dla Transient błędów jest Baza danych SQL systemu Windows Azure] (http://social.technet.microsoft.com/wiki/contents/articles/4235.retry-logic-for-transient-failures-in-windows-azure-sql-database.aspx) – astaykov
I właśnie natknąłem się na ten sam artykuł. Sprawdź zaktualizowane pytanie, dodałem wyniki kwerendy do dziennika zdarzeń i wszystkie wydają się być "zablokowanymi_przez_firewallami", mimo że żaden z naszych użytkowników nie zgłasza problemów ... –
Gdzie są aplikacje, które łączą się z SQL Azure z systemem? Czy na pewno masz dostęp do wszystkich potrzebnych adresów IP? Czy którakolwiek z aplikacji łączy się z wieloma IP lub ma dynamicznie przydzielane adresy IP? Czy możesz opublikować format twoich ciągów połączeń? – greg84