Ne peut pas se débarrasser de la “connexion physique n'est pas utilisable” exception
Je suis sur le point de me tirer une balle. Passé quelques semaines à essayer de résoudre ce problème. Nous avons une ASP.NET MVC 4 web app qui utilise SQL Server 2012 et Entity Framework ORM et de l'Unité du Cio. Application Web est hébergé sur Amazon EC2. J'ai commencé à me "connexion Physique n'est pas utilisable" l'exception". Il arrive quelques fois par jour. J'ai cherché sur de nombreux articles, des forums et essayé toutes les suggestions:
- Essayé de l'enlever de mise en commun de "chaîne de connexion d'Interrogation=False"
- Essayé de limiter la taille du pool de connexion et de la durée de vie
- Essayé de changer LifetimeManager de l'Unité de HierarchicalLifetimeManager, PerRequestLifetimeManager. Aussi s'assurer que les entités contexte est disposé après la fin de la demande
- Supprimé tous les TransactionScope références
Lorsque l'exception se produit, la seule façon de restaurer l'application est de redémarrer le serveur, ce qui est très mauvais!!!
C'est plein exception:
Un niveau transport erreur s'est produite lors de l'envoi de la requête vers le serveur. (fournisseur: Session Fournisseur, erreur: 19 - lien Physique n'est pas utilisable)
- Cet article semble donner un indice... social.msdn.microsoft.com/Forums/en-US/.... Dans ma chaîne de connexion, je suis en utilisant le nom DNS du serveur, ASP.NET MVC application est hébergée sur le même serveur que la DB donc j'ai changé le nom du serveur dans la chaîne de connexion à "." (local). Je vais le surveiller et écrire de nouveau
- Avez-vous eu de chance avec le (local) ou votre problème est réapparu ?
Vous devez vous connecter pour publier un commentaire.
Je confirme maintenant, en changeant de chaîne de connexion sur le serveur à utiliser "." pour la source de données au lieu de nom de domaine, exception semblent avoir disparu. Très bizarre comme nom de domaine utilisé pour le travail avant. Doit être une sorte de mise à jour de SQL Server
Je sais que c'est un vieux post mais j'ai récemment eu un temps horrible avec cette erreur et il n'y avait pas de solutions sur les blogs.
Des détails spécifiques au sujet de mon problème:
ASP.NET web app avec la cible .NET framework 4.5, MVC ver. 5.2.3, Entité ver. 6.0.0.0, MS SQLServer Express 2014. Mon dev système est en cours d'exécution Windows 7 Pro SP1.
Symptômes: L'erreur est venu sur un coup (je n'avais pas travaillé sur le projet pendant près de trois semaines, au cours de laquelle il a fonctionné très bien). Quand j'ai commencé à l'application, après l'enregistrement de l'utilisateur, la seconde requête envoyée à la base de données par Entity framework TOUJOURS généré l'erreur "Un niveau transport erreur s'est produite lors de la réception des résultats à partir du serveur. (fournisseur: Session Fournisseur, erreur: 19 - lien Physique n'est pas utilisable)". Il n'a pas d'importance sur la table a été interrogé. L'erreur n'a pas été intermittent et de redémarrer le serveur n'a pas aidé. L'erreur s'est produite à l'aide de IIS et IIS express.
SqlConnection.ClearAllPools() a empêché l'erreur pour UNE question seulement, et je n'ai pas envie d'ajouter ce avant chaque Entité d'appel dans le programme. J'ai essayé de chaque solution unique sur tous les blogs en vain, même des solutions à d'autres au Niveau du Transport des Erreurs. J'ai roulé en arrière package de mises à jour de mes références dans une tentative pour revenir à un état de fonctionnement. Rien!
La Solution: Le coupable était Microsoft SQL Server 2014 SP1 mise à jour de Sécurité (KB3070446)!! J'ai roulé en arrière de cette mise à jour et tout a fonctionné comme un charme!
J'ai perdu deux jours de dev de travail qui traitent de ce problème, j'espère que ce post peut aider quelqu'un à éviter ce supplice!
J'ai rencontré cette erreur ainsi. Dans mon cas, le problème était que la connexion a été fermée par le serveur de base de données, mais la connexion reste valide dans le pool de connexion de mon application.
La réinitialisation de l'application de la piscine obtenu mon app en arrière et en cours d'exécution.
Eu cette erreur après le retrait de MaxDegreeOfParallelism dont la valeur par défaut est -1, no limit ou lors du réglage de la db.La base de données.CommandTimeout = 0.
Un autre scénario:
La connexion réseau est bas, même pour quelques secondes pendant que l'application est en communication avec le serveur de base de données.
La connexion de base de données est fermée par le serveur de base de données. La connexion reste valide dans le pool de connexion de votre application; par conséquent, lorsque vous ramassage partagé chaîne de connexion et essayez d'exécuter ce n'est pas en mesure d'atteindre la base de données. Si vous êtes en développement Visual Studio, il suffit de fermer le serveur web temporaire sur votre barre des tâches.
Si cela arrive dans la production, la réinitialisation de votre pool d'applications pour votre site web devrait recycler le pool de connexions.
Peut-être dû à une mise à jour sur le Système de Prévention d'Intrusion.
S'il vous plaît essayer de consulter le fil de discussion suivant:
http://forums.asp.net/t/1908976.aspx
Espère que cela peut aider.
C'était une erreur DNS pour moi, un diagnostic, car en utilisant le serveur nom dans la chaîne de connexion produite l'erreur, mais à l'aide de la IP a bien fonctionné. Ouvrir l'invite de cmd, exécutez un rapide
ipconfig /flushdns
pour voir si cela aide.J'ai eu la même erreur pour les 2 jours! et ne savait même pas pourquoi il a soudainement qui s'est passé?!!
Ce qu'il s'est avéré être: j'ai eu une Authentification Réseau de Problème d'Accès (à Cause de ma Connexion WiFi).. et une fois que j'ai Débranché/Désactivé mon WiFi et connecté via un Câble (stable et sécurisé de connexion).. l'erreur de s'en alla..
Aussi je n'ai la suite, tels que:
Redémarrage de Tous les Services SQL Server. Redémarré Mon SQLServer Instance.
Ajouté ces accessoires pour mon DEF chaîne de connexion..