2016-11-30 3 views
0

Ich habe eine Anwendung in C# (Framework 4.6) geschrieben, die System.Data.SqlClient verwendet, um mit einem SQL Server 2014 zu kommunizieren. Diese Anwendung verwendet SSL nicht zum Herstellen einer Verbindung zu SQL.Sqlconnection erfordert immer noch ssl aber "encrypt = false"

Die Verbindung zu SQL Server mit diesem Fehler fehlschlägt:

a connection was established but ... protocol error ... opening session (SSL provider error 0)

Auf dem Server beobachte ich bei den Ereignissen: Schannel Fehler 36874 und 36888 (A TLS1.2 Verbindungsanfrage wurde von einer Remote-Client-Anwendung empfangen , aber keine der Cipher Suites, die von der Client-Anwendung unterstützt werden, werden vom Server unterstützt.)

Ich habe versucht, encrypt=false in der Verbindungszeichenfolge zu erzwingen, um jede SSL-Option zu deaktivieren, aber das löst das Problem nicht.

Dieser Fehler tritt nicht auf allen Computern desselben Netzwerks auf.

Vielen Dank im Voraus für Ihre Hilfe.

Mit freundlichen Grüßen

Guy

+0

Der Server kann die Verwendung einer SSL-Verbindung erzwingen, in Verbindung bringen würden, unabhängig von Client-Einstellungen. Sehen Sie sich einfach die Dokumentation an und prüfen Sie, ob etwas für Sie zutrifft. – Luaan

Antwort

1

Wir haben eine Lösung für dieses Problem gefunden. Wir müssen News-Keys in der Registrierung hinzufügen.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2] 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] 
"DisabledByDefault"=dword:00000001 
"Enabled"=dword:00000000 

Nach dem Neustart des Computers, Problem gelöst ist, aber wir verstehen nicht, warum somes Computer mit tls 1.2

0

Möglicherweise möchten Sie auf den Registrierungseinstellungen des Computers Öffnung der Verbindung zu SQL Server überprüfen. Es gibt eine wenig bekannte Bearbeitung, die alle Verbindungen zu TLS 1.2 zwingen kann.

Registry information

Der Kern der Lösung für uns war zu diesen Einstellungen zu überprüfen:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0.30319] "SchUseStrongCrypto"=dword:00000001

Wenn Sie wollen, dass es aktiviert ist, verwenden Sie es wie es ist. Wenn Sie sie deaktivieren möchten, können Sie den Wert 0 festlegen oder die Schlüssel löschen.

+0

Danke für diesen Tipp. Diese Schlüssel existierten nicht. Was scheint zu sein, wenn eine sichere Verbindung nicht erwünscht ist. Durch das Erstellen der Schlüssel mit einem 0-Wert bleibt der Fehler bestehen. – user3442435

Verwandte Themen