HttpWebRequest: la richiesta è stata interrotta: imansible creare un canale sicuro SSL / TLS

Sto facendo un’applicazione per moduli web asp.net che offre di pagare usando paypal. Si suppone che l’applicazione faccia uso di ssl. Quando eseguo la mia applicazione va tutto bene fino a quando non seleziono il mio pulsante di pagamento tramite paypal. Quando preme questo pulsante si verifica il seguente errore:

La richiesta è stata interrotta: imansible creare il canale protetto SSL / TLS.

Descrizione: si è verificata un’eccezione non gestita durante l’esecuzione della richiesta Web corrente. Si prega di rivedere la traccia dello stack per ulteriori informazioni sull’errore e sulla sua origine nel codice.

Dettagli eccezione: System.Net.WebException: la richiesta è stata interrotta: imansible creare il canale protetto SSL / TLS.

Errore di origine:

Linea 203: Linea 204: // Recupera la risposta restituita dalla chiamata dell’API NVP a PayPal. Riga 205: HttpWebResponse objResponse = (HttpWebResponse) objRequest.GetResponse (); Riga 206: risultato stringa; Riga 207: utilizzo (StreamReader sr = new StreamReader (objResponse.GetResponseStream ()))

File di origine: C: \ Users \ willem \ documents \ visual studio 2015 \ Projects \ WingtipToys \ WingtipToys \ Logic \ PayPalFunctions.cs
Linea: 205

Sotto il mio metodo in cui si verifica l’errore

public string HttpCall(string NvpRequest) { string url = pEndPointURL; string strPost = NvpRequest + "&" + buildCredentialsNVPString(); strPost = strPost + "&BUTTONSOURCE=" + HttpUtility.UrlEncode(BNCode); HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url); objRequest.Timeout = Timeout; objRequest.Method = "POST"; //objRequest.ContentLength = strPost.Length; try { using (StreamWriter myWriter = new StreamWriter(objRequest.GetRequestStream())) { myWriter.Write(strPost); } } catch (Exception) { // No logging for this tutorial. } //Retrieve the Response returned from the NVP API call to PayPal. HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); string result; using (StreamReader sr = new StreamReader(objResponse.GetResponseStream())) { result = sr.ReadToEnd(); } return result; } 

Il tuo snippet di codice non specifica il protocollo di sicurezza da utilizzare da quello che posso dire –

Esempio:

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 

L’ho trovato dopo aver esaminato diversi metodi di autenticazione contro l’API di PayPal.

C’è un argomento correlato qui che merita il merito. problemi-con-paypal-api-http-call

Nota: questa risposta è stata aggiunta dopo la stringa di commenti sulla domanda OP originale.