it-swarm.com.de

Wie behebe ich einen Fehler beim Herstellen einer Verbindung zu SQL Server: SSL-Anbieter, Fehler: - Die empfangene Nachricht war unerwartet oder falsch formatiert

Wenn ich mit Visual Studio 2012 (oder 2013) eine Verbindung von meiner lokalen Entwickler-Box zu einem SQL Server 2008R2 SP1 herstelle, erhalte ich folgende Meldung: 

Es wurde erfolgreich eine Verbindung zum Server hergestellt, aber dann trat während des Anmeldevorgangs ein Fehler auf. (Anbieter: SSL-Anbieter, Fehler: 0 - Die empfangene Nachricht war unerwartet oder falsch formatiert.)

Meine Version von .Net Framework ist lokal 4.5.50938

Mein Kollege hat genau das gleiche Problem. Ich glaube auch, dass ich das Problem früher hatte, bevor ich den PC neu installierte, als ich SSMS 2012 installiert hatte, da dies auch auf .Net Framework 4 und nicht auf .Net v2 als SSMS2008R2 beruht, was gut funktioniert. Sinnvoll wäre auch, dass das interne Daten-Tooling in Visual Studio auf .Net 4 basiert.

Das Problem war nicht immer vorhanden, und ich glaube, es wurde eingeführt, als ich Visual Studio 2013 zum ersten Mal installierte - und später nach einer Neuinstallation, höchstwahrscheinlich nach der Aktualisierung des .Net-Frameworks.

Das Problem hängt meiner Meinung nach mit System.Data in dieser Version des .Net-Frameworks zusammen, wenn eine Verbindung mit SQL Server 2008R2 SP1 hergestellt wird. 

Wie kann ich das beheben? Gibt es bekannte Fehlerbehebungen, Updates usw.?

Leider ist das Aktualisieren von SQL Server 2008R2SP1 derzeit keine Option.

Ich habe auch nach Lösungen gesucht, aber bisher nichts brauchbares gefunden. Hier einige Links zu anderen Posts mit ähnlichen Problemen:

http://social.msdn.Microsoft.com/Forums/en-US/ea2c470f-14ba-4864-8a39-1396f4e361e8/sqlconnection-now-failing-exception-when-connecting-to-remote-instance?forum= sqldataaccess

http://www.sqlservercentral.com/Forums/Topic1529609-2799-1.aspx

enter image description here

9
Kjensen

Sie haben nur die folgenden Optionen, wie von Microsoft angewiesen:

  • Deinstallieren Sie anstößige LSP- oder BSP-Programme (z. B. Sophos Antivirus)
  • Deinstallieren Sie .NET Framework 4.5.1 (daher funktioniert VS 2013 nicht)
  • Installieren Sie .NET Framework 4.5.2

Referenz: http://support.Microsoft.com/kb/2915689

10
Frank Liao

Nach langer und intensiver Suche fand ich eine Lösung, ohne Neuinstallation .NET Framework 4.5.1. Sie können Folgendes tun:

Führen Sie den folgenden Befehl im Befehlszeilenmodus mit Administratorrechten aus (habe es nicht ohne Administratorrechte versucht, könnte auch funktionieren).

netsh winsock reset

Starten Sie dann Ihren Computer neu. Das hat es wie durch Zauberhand behoben und Sie können .NET Framework 4.5.1 beibehalten

8
Lionet Chen
  1. Deinstallieren Sie .NET Framework 4.5.1
  2. Deinstallieren Sie Visual Studio 2012/2013 und installieren Sie es erneut (die Reparatur funktioniert nicht)

In .Net 4.5.1 scheint es dafür keine Lösung zu geben. Das Deinstallieren von VS 2012 hat für mich und VS2013 für meinen Kollegen gebrochen - aber nach VS scheint alles zu funktionieren. Ich würde wetten, dass wenn ich SQL Server Management Studio 2012 erneut installieren würde, dies auch gegen die SQL Server 2008SP1-Installation funktionieren würde, die wir haben.

Andere haben das gleiche Update in diesem Thread gemeldet.

2
Kjensen

Als Workaround habe ich gerade .NET Framework 4.5.1 deinstalliert und .NET Framework 4.5 installiert. Dann klappt alles!

Zu Ihrer Information, der Fehler wurde gemeldet hier

1
Allen Xia

Ich habe VS 2013 installiert und wollte auf keinen Fall auf eine frühere Version zurückgreifen.

Auf der Grundlage der Antwort von Frank Liao musste ich lediglich .NET 4.5.2 installieren. Ich musste nichts deinstallieren.

Holen Sie sich einfach den Web-Installer von Frank Liao und führen Sie ihn aus.

Danke Frank!

0
hholtij

Für mich bestand die Lösung darin, dies aus der Verbindungszeichenfolge zu entfernen

Encrypt=True;TrustServerCertificate=False;

Ohne geht es aber offensichtlich ohne Verschlüsselung.

0
eka808

Ich habe versucht, netsh winsock reset von der Befehlszeile aus zu argumentieren. Es wird ab sofort gearbeitet. 

0
Sandip Patel