Une connexion a été établie avec succès avec le serveur, mais une erreur s'est produite lors de la négociation de pré-connexion
Je reçois une erreur suivante lorsque j'essaie de connecter la base de données de Production à partir d'un environnement Local.
J'ai été capable de connecter la production DB avant, mais soudainement je reçois une erreur suivante, une idée?
Une connexion a été établie avec succès avec le serveur, mais une erreur s'est produite lors de la pré-connexion. (fournisseur: Fournisseur TCP, erreur: 0 - Le handle n'est pas valide.)
J'essayais de courir asp.net site Web en PC local, qui a une connexion chaîne de production DB, suivant la trace de la pile pour l'erreur que je reçois dans l'environnement local.
À MyWebsiteDAL.clsForumQuestion.SelectAll(Int32 CurrentPageIndex, Int32 PageSize) dans D:EDriveMy sites Web MyWebsiteMyWebsiteMyWebsiteDALclsForumQuestion.cs: ligne 821 chez CodeConnect.Défaut.Page_Load (expéditeur D'objet, EventArgs e) dans D:EDriveMy sites Web MyWebsiteMyWebsiteMyWebsite Default.aspx.cs:ligne 100 à Système.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, objet o, Objet t, EventArgs e) au système.Web.Util.CalliEventHandlerDelegateProxy.Rappel (expéditeur D'objet, EventArgs e) au système.Web.INTERFACE.Contrôle.OnLoad (EventArgs e) au système.Web.INTERFACE.Contrôle.LoadRecursive() au système.Web.INTERFACE.Page.ProcessRequestMain(boolean includeStagesBeforeAsyncPoint, boolean includeStagesAfterAsyncPoint)
Une idée de ce qui a pu mal tourner ici?
17 réponses
Solution
1) Nettoyez votre VS.Net Solution
2) Reconstruire Le Projet.
3) Réinitialiser IIS
4) Exécutez à nouveau le projet.
Fondamentalement, cela a résolu mon problème, mais dans mon cas, je ne recevais pas cette erreur et soudainement mon environnement local commence à me donner l'erreur ci-dessus, donc peut-être que ce travail de truc pour moi.
- j'ai sauvé mon travail,
- Fermé Visual Studio, puis
- Rouvrir mon projet
Fonctionne Toujours pour moi.
J'ai rencontré cette erreur lors de l'exécution de processus très coûteux en mémoire. Lorsque le système a commencé à manquer de mémoire, j'ai commencé à remarquer ce genre d'erreur. J'ai dû changer l'algorithme afin de mieux utiliser la RAM.
À noter que si certains threads ont lancé cette exception, d'autres ont lancé:
Système.Données.SqlClient.SqlException (0x80131904): délai de connexion expiré. Le délai d'attente s'est écoulé lors de la tentative de consommation de la pré-connexion poignée de main accusé de réception. Cela peut être dû à l'échec de la négociation de pré-connexion ou à l'impossibilité pour le serveur de répondre à temps. La durée passée lors de la tentative de connexion à ce serveur était - [pré-connexion] initialization = 43606; handshake=560; - - - > System.ComponentModel.Win32Exception (0x80004005): l'opération d'attente a expiré
Les deux problèmes ont disparu après le changement du système afin qu'il puisse fonctionner en utilisant moins de RAM.
L'exécution de la commande suivante a fonctionné pour moi:
netsh Winsock reset
Vous voudrez peut-être vérifier quelques choses:
-
Votre serveur de production permet des connexions à distance. (il est possible que quelqu'un ait désactivé cela, surtout si vous avez un DBA)
Vérifiez votre chaîne de connexion. Parfois, si vous utilisez une adresse ip ou un nom de serveur, cela provoquera cette erreur. Essayer les deux.
J'ai eu le même problème, je stockais des données de session dans la base de données, la chaîne de connexion avait Encrypt = True , que je suppose a dit au client sql de se connecter au serveur en mode sécurisé (SSL), en supprimant cela a aidé!
Comme décrit dans la réponse de Ricardo ,
netsh Winsock reset
A travaillé pour moi,
P.S. Si vous avez Internet download manager ou de tels programmes qui vous modifie le paramètre IP est installé, après avoir exécuté cette commande lorsque vous redémarrez votre ordinateur, IDM vous demandera de modifier le paramètre, définissez non dans ce cas, puis exécutez votre application, cela fonctionnera correctement.
J'espère que ça
J'ai eu un problème similaire où je ne pouvais pas me connecter à une base de données et j'ai essayé les recommandations ici.
À la fin de la journée c'est ce qui a fonctionné pour moi:
A utilisé L'outil SQL Server Configuration Manager pour activer les protocoles TCP/IP et / ou les Pipes nommés sur L'ordinateur client SQL Server.
- Cliquez sur Démarrer, pointez sur tous les programmes et cliquez sur SQL Server Configuration Manager.
- Cliquez pour développer la Configuration réseau SQL Server, puis cliquez sur Client Protocole.
- cliquez avec le bouton droit sur le protocole TCP/IP, puis cliquez sur Activer.
- cliquez avec le bouton droit sur le protocole Pipes nommé, puis cliquez sur Activer.
- redémarrez le service SQL server si vous y êtes invité.
Je ne sais toujours pas pourquoi ou quand cela a été désactivé.
Pour moi, la solution est de tuer les processus de travail IIS Express zombie.
Par exemple, localiser dans le Gestionnaire des tâches et terminer la tâche.
J'ai eu ce même problème et n'avait pas de chance avec les correctifs suggérés. Je suis ensuite tombé sur Cet article et j'ai vu le commentaire de Mirrh concernant un programme appelé Sendori bloquant le LSP. Aucune idée de comment il est arrivé sur mon ordinateur, mais il était là et le supprimer a résolu le problème.
Si l'article ne fonctionne pas, vérifiez simplement vos programmes et désinstallez Sendori si vous le voyez.
Dans mon cas, c'était:
Persist Security Info=True;
Dans ma chaîne de connexion qui devait être supprimée. Une fois que je l'ai fait, je n'avais plus de problèmes.
J'ai redémarré SQL Server (Sharepoint) service et il a résolu le problème.
J'obtenais exactement le même problème sans chnges à la base de code ou aux serveurs. Il s'est avéré que le serveur DB fonctionnait à 100% CPU et SQL Server était affamé de tout temps CPU, ce qui a provoqué le délai d'attente.
Avait le même problème, la raison en était BCrypt.Net bibliothèque, compilée en utilisant. net 2.0 framework, tandis que l'ensemble du projet, qui l'utilisait, compilait avec. net 4.0. Si les symptômes sont les mêmes, essayez de télécharger le code source BCrypt et de le reconstruire dans release configuration dans.NET 4.0. Après l'avoir fait, "pré-connexion handshake" a bien fonctionné. Espérons que cela aide quelqu'un.
J'ai vécu cette erreur et j'ai fait toutes les suggestions de vous ici, mais aucune n'a eu d'effet sur mon erreur.
J'ai attrapé le coupable: si vous utilisez *.ini
fichier de votre système, vous pouvez vérifier ce nom de serveur était entrée là et assurez-vous qu'il est le même que celui de votre site web.config chaîne de connexion.
Le même problème ici et aucune réponse listée ici n'a fonctionné, ni aucune solution que j'ai pu trouver en ligne. Le problème a commencé peu de temps après que la mise à jour anniversaire de Windows 10 ait été appliquée sur mon PC de développement et n'a affecté que mon ancienne instance SQL Server 2005. Je n'ai pas pu me connecter à l'instance via Mes Applications Web ou même en utilisant Sql Management Studio.
Pour ce que ça vaut, c'est ce qui l'a résolu pour moi:
-
Ouvrez SQL Server Configuration Manager (en fonction de version de SQL Server que vous utilisez):
- C:\Windows\SysWOW64\SQLServerManager.msc
- C:\Windows\SysWOW64\SQLServerManager10.msc ou
- C:\Windows\SysWOW64\SQLServerManager12.msc ou
- etc
Sélectionnez les Services SQL Server
-
Localisez le service en difficulté et affichez les propriétés
- par exemple SQL Server (SQL2005) dans mon cas
Dans l'onglet connexion, changement de la "Intégrées" à "Service Réseau"
Ce qui est presque ce que dit Cette solution aléatoire: http://www.kutayzorlu.com/operating-systems/linux-unix-redhat-debian-ubuntu-opensuse-centos/general-server-administrating/error-fixed-a-connection-was-successfully-established-with-the-server-but-then-an-error-occurred-during-the-pre-login-handshake-12405.html
J'ai choisi le service réseau sans raison du tout. Le mien était déjà configuré pour utiliser le système Local. Cette sécurité n'a pas d'importance pour moi car elle n'était problématique que sur ma machine de développement locale, uniquement accessible localement. Je ne peux pas les conseiller pourquoi cela fonctionne, mais il l'a fait.
Dans mon cas, je recevais l'erreur quand je voulais accéder à une base de données distante. Cependant, je l'ai résolu en démarrant le service de navigateur SQL Server.