2015-05-23 7 views
6

Esistono problemi noti relativi all'utilizzo di RestSharp & TLS 1.1? Al momento utilizziamo RestSharp per inviare richieste di posta a un fornitore. Questo fornitore non accetterà più connessioni TLS 1.0 e passerà a TLS 1.1.RestSharp & TLS 1.1

Il problema è quando si passa da TLS 1.0 a TLS 1.1, quindi il codice RestSharp non funziona più.

L'ho provato su 2008 R2 (dopo aver abilitato le impostazioni del registro per 1.1 e 1.2) e anche su Windows 8.1. Si passa a TLS 1.1 e il RestResponse è:

"La connessione sottostante chiusa: un errore imprevisto in una mandata"

Passare indietro a TLS 1.0 e nessun problema. Ho testato l'accesso al loro sito utilizzando Google Chrome e mostra TLS 1.1 in modo che il server e la workstation client siano in grado di utilizzare TLS 1.1. Sembra solo essere RestSharp che è il problema ...

risposta

12

Non ho trovato alcun modo per configurare RestSharp per utilizzare protocollo diverso. Ma è possibile ignorare protocollo predefinito in ServicePointManager prima che inviano richieste:

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

Questa risolvere il problema. È anche possibile modificare le impostazioni del registro di Windows per utilizzare TLS 1.1/1.2 per impostazione predefinita. Here is maggiori informazioni nella domanda correlata.

+1

FYI, questo richiede .NET 4.5 o versione successiva, che non verrà eseguito su XP/Server 2003. (non influenza OP, ma vale la pena notare) – ps2goat

+0

Questa risposta non funziona per me. In esecuzione su .net 4.5.2 e non riesce ancora – emirhosseini

+3

A chi può interessare: l'oggetto 'ServicePointManager' proviene dallo spazio dei nomi' System.Net' e mantiene uno stato di tipo statico. Quindi, solo "usare" quel namespace ed eseguire il codice risposto * una volta * prima di eseguire le operazioni in questione fa il trucco. – kmonsoor