Prendre en compte TLS 1.2 en ASP.NET

Prendre en compte TLS 1.2 en ASP.NET

Si vous rencontrez cette erreur :

The underlying connection was closed: An unexpected error occurred on a receive.

en essayant de faire un paiement PayPal avec ce code : 

WebRequest request = WebRequest.Create(« https://api-3t.paypal.com/nvp »);

request.Method = « POST »;

request.ContentType = « application/x-www-form-urlencoded »;

request.ContentLength = postData.ToString().Length;

var sw = new StreamWriter(request.GetRequestStream());

sw.Write(postData.ToString());

sw.Close();

WebResponse response = request.GetResponse();

(pour le code complet d’un paiement PayPal en asp.net voir cet article : http://ghislainmesse.blogspot.fr/2016/07/integrer-le-paiement-paypal-dans-un.html)

C’est que votre serveur ne prend pas en compte TLS 1.2.

Soit vous installez asp.net 4.5 ou supérieur, soit vous ajoutez cette ligne en début de code :

protected void Page_Load(object sender, EventArgs e)

{

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

        ….

}

P.S. : ne pas oublier d’ajouter cette clause dans l’entête du code : using System.Net;