2015-05-23 11 views
6

Czy są jakieś znane problemy dotyczące korzystania z RestSharp & TLS 1.1? Obecnie używamy RestSharp do wysyłania postów do dostawcy. Ten dostawca nie będzie już akceptować połączeń TLS 1.0 i przejść na TLS 1.1.RestSharp i TLS 1.1

Problem polega na tym, że przełączają się z TLS 1.0 na TLS 1.1, a następnie kod RestSharp, który już nie działa.

Przetestowałem to na 2008 R2 (po włączeniu ustawień rejestru dla wersji 1.1 i 1.2), a także w systemie Windows 8.1. przełączać się one do TLS 1.1 i RestResponse jest:

„Połączenie podstawowe zostało zamknięte: Wystąpił nieoczekiwany błąd na wysyłanie”

powrócić do TLS 1.0 i bez problemu. Przetestowałem dostęp do ich witryny za pomocą przeglądarki Google Chrome i pokazuje ona protokół TLS 1.1, aby serwer i stacja robocza klienta mogły korzystać z protokołu TLS 1.1. Wygląda na to, że RestSharp jest problemem ...

Odpowiedz

12

Nie znalazłem żadnego sposobu na skonfigurowanie RestSharp do użycia innego protokołu. Ale można zastąpić domyślny protokół w ServicePointManager przed złożeniem wniosków:

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

to rozwiąże problem. Można również zmienić ustawienia rejestru systemu Windows, aby domyślnie używać protokołu TLS 1.1/1.2. Here is więcej informacji w pokrewnym pytaniu.

+1

FYI, wymaga to .NET 4.5 lub nowszej, która nie będzie działać na XP/Server 2003. (nie wpływa na OP, ale warto zauważyć) – ps2goat

+0

Ta odpowiedź nie działa dla mnie. Działa na .net 4.5.2 i nadal się nie udaje – emirhosseini

+3

Do kogo może dotyczyć: obiekt 'ServicePointManager' pochodzi z przestrzeni nazw' System.Net' i zachowuje stan statyczny. Tak więc, tylko "używanie" tej przestrzeni nazw i wykonanie odebranego kodu * raz * przed wykonaniem danej operacji wykonuje sztuczkę. – kmonsoor