2015-05-23 8 views
6

Gibt es bekannte Probleme bei der Verwendung von RestSharp & TLS 1.1? Derzeit verwenden wir RestSharp, um Postanforderungen an einen Anbieter zu senden. Dieser Anbieter wird keine TLS 1.0-Verbindungen mehr akzeptieren und zu TLS 1.1 wechseln.RestSharp & TLS 1.1

Das Problem ist, wenn sie von TLS 1.0 zu TLS 1.1 wechseln, dann haben wir den RestSharp-Code nicht mehr funktioniert.

Ich habe dies auf 2008 R2 (nach der Aktivierung der Registrierungseinstellungen für 1.1 und 1.2) und auch auf Windows 8.1 getestet. Sie schalten auf TLS 1.1 und die RestResponse ist:

„Die zugrunde liegende Verbindung wurde geschlossen: Ein unerwarteter Fehler ist aufgetreten auf einem Sende“

Wechseln Sie wieder zu TLS 1.0 und kein Problem. Ich habe den Zugriff auf ihre Website mit Google Chrome getestet und es zeigt TLS 1.1, sodass der Server und die Client-Arbeitsstation TLS 1.1 verwenden können. Es scheint nur RestSharp zu sein, das ist das Problem ...

Antwort

12

Ich habe keine Möglichkeit gefunden, RestSharp zu konfigurieren, um ein anderes Protokoll zu verwenden. Aber Sie können Standardprotokoll in Servicepoint, bevor sie Anfragen außer Kraft setzen:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11; 

das Problem Diese lösen. Sie können auch die Windows-Registrierungseinstellungen ändern, um standardmäßig TLS 1.1/1.2 zu verwenden. Here is mehr Infos in verwandter Frage.

+1

FYI, dies erfordert .NET 4.5 oder höher, die nicht auf XP/Server 2003 laufen wird. (Betrifft nicht OP, aber beachtenswert) – ps2goat

+0

Diese Antwort funktioniert nicht für mich. Läuft auf .net 4.5.2 und es schlägt immer noch – emirhosseini

+3

Wen es betrifft: 'ServicePointManager' Objekt kommt aus' System.Net' Namespace, und behält einen statisch-ähnlichen Zustand. Wenn Sie also nur diesen Namespace "benutzen" und den beantworteten Code * einmal * ausführen, bevor Sie die betroffenen Operationen ausführen, ist das der Trick. – kmonsoor