“Le délai de temporisation de sémaphore a expiré” SQL Azure
Je suis en cours d'exécution un .Net MVC Azure Web Site avec une base de données SQL Azure accessible à l'aide de Entity Framework 6. Par intermittence (1 pour mille ou en fait la demande), j'obtiens l'erreur "le Système.ComponentModel.Win32Exception: Le délai de temporisation de sémaphore a expiré"
Système.Les données.SqlClient.SqlException: Une erreur de niveau transport a
s'est produite lors de la réception des résultats à partir du serveur. (fournisseur: TCP
Fournisseur d'erreur: 0 - Le délai de temporisation de sémaphore a expiré.) --->
Système.ComponentModel.Win32Exception: Le délai de temporisation de sémaphore a
expiré
Il semble y avoir aucune raison pour cela et demande avant et après l'erreur et de leurs interactions avec SQL Azure sont beaux. Est-il possible de gérer ou de résoudre ce problème.
OriginalL'auteur AlexC | 2014-06-13
Vous devez vous connecter pour publier un commentaire.
Azure SQL est très différente de celle sur la prémisse SQL. Lorsqu'un Azure SQL Serveur est surchargé ou descend, elle aura pour effet de déconnecter un certain nombre de connexions et lorsque vous vous reconnectez, vous obtiendrez envoyé à un autre Serveur SQL server.
Cependant, avec les connexions TCP vous ne savez pas si l'autre extrémité a mis fin à la connexion, à moins que vous envoyer de l'information vers le bas, ce qui est la cause de cette erreur.
Une fois votre code de connaître la fin de la connexion, il établit une nouvelle connexion sur la requête suivante, qui fonctionnent très bien.
Avec Entity Framework 6 vous pouvez maintenant composer avec Transitoire de gestion des Pannes avec SQL Azure à l'aide de Entity Framework
Dans votre DBConfiguration classe, vous devez définir votre SetExecutionStrategy et de le configurer. Il suffit de créer une nouvelle classe dans votre projet et hériter de DbConfiguration.
Tous les détails à l' Connexion de la Résilience, de la Logique de nouvelle tentative (EF6 à partir)
OriginalL'auteur Adam Pedley
Il y a une question de savoir où cela se produit lors d'un swap VIP, et le EF6 réessayer stratégie n'aide pas dans ce scénario.
https://social.msdn.microsoft.com/Forums/azure/en-US/5e195f94-d4d2-4c2d-8a4e-7d66b4761510/vip-swap-and-the-semaphore-timeout-period-has-expired-errors?forum=ssdsgetstarted&prof=required
OriginalL'auteur Co7e