2016-01-20 20 views
5

Mamy strukturę encji zaimplementowaną w naszym kodzie Web API 2.0. Aby wywołać elementy bazy danych, używamy wywołań procedur składowania. Cała nasza aplikacja jest hostowana w chmurze Microsoft Azure. Oto dwa wyjątki, z którymi mamy do czynienia.Błędy połączenia SQL w Microsoft Azure

Wiadomość: Wystąpił błąd podczas wykonywania definicji polecenia. Zobacz wewnętrzny wyjątek, aby poznać szczegóły.

InnerException: Limit czasu wygasł. Okres oczekiwania upłynął przed zakończeniem operacji lub serwer nie odpowiada. Ta usterka wystąpiła podczas próby połączenia z serwerem Zasada.

Jeszcze jeden wyjątek mamy do czynienia jest jak:

Wiadomość: Podstawowym dostawcą powiodło się na Open.

InnerException: połączenie nie zostało zamknięte. Aktualny stan połączenia to połączenie.

Uwaga: Kod jest w C# Web API 2.0. Korzystamy z Entity Framework, aby wywołać procedurę Store. Baza danych jest SQL Server 2012. w W web.config, ciąg połączenia wygląda następująco:

<add name="*****Entities" connectionString="metadata=res://*/Models.Database.*****.csdl|res://*/Models.Database.*****.ssdl|res://*/Models.Database.*****.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=*****;Failover Partner=*****;initial catalog=*****;user id=*****;password=********;MultipleActiveResultSets=True;Pooling=false;Connection Lifetime=2;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

Również ten błędy nie są ciągłe, my przypuszczenie to może się dziać albo problemy z siecią lub podczas intensywnego ruchu. Ale wciąż nie mamy żadnych poważnych przyczyn w tej sprawie.

Proszę, poprowadź nas rozwiązanie dla tego samego.

Odpowiedz

3

To wygląda dla mnie jako błąd przejściowy. Powinieneś używać EF6 (lub nowszego) i setup the Execution Strategies.

+0

Co to znaczy błąd przejściowy? W moim projekcie używam wersji EF 5.0.0.0. – Mrunal

+0

Gdy aplikacje oparte na chmurze korzystają z innych usług opartych na chmurze, mogą wystąpić błędy z powodu tymczasowych warunków, takich jak przerywany serwis, usterki na poziomie infrastruktury lub problemy z siecią. Bardzo często, jeśli operacja zostanie ponowiona krótko później (może tylko kilka milisekund później) operacja może się powieść. Tego rodzaju warunki błędu są określane jako błędy przejściowe. –

+0

Dzięki za informację @Sascha. Jak radzić sobie z tego typu błędami lub radzić sobie z nimi? Czy są dostępne wytyczne dotyczące dokumentacji lub kodowania/architektury? Każdy, kto skonfigurował platformę Azure, napotyka takie błędy? – Mrunal