.net - ejemplo - wcf vs web api
Cliente WCF en.NET 4.5.1: ¿Cómo habilitar TLS 1.2 cuando se utiliza WebRequest? (2)
Aunque no es fácil de entender, la propiedad necesaria es:
System.Net.ServicePointManager.SecurityProtocol
Esto se puede usar para deshabilitar y habilitar niveles de TLS en el entorno WCF.
Además, puedes ver con qué WCF está configurado actualmente para usar:
Console.WriteLine(System.Net.ServicePointManager.SecurityProtocol.ToString());
Gracias a: ¿Cómo desactivo la recuperación de SSL y uso solo TLS para las conexiones de salida en .NET? (Mitigación del caniche)
Nuestro .net WCF Client, la llamada WebRequest, compilada a un EXE de Windows, ejecutándose en Win2012-R2, se niega a conectarse a un servidor web que emerge SOLAMENTE TLS 1.2
Sabemos que Win2012 y .NET 4.5x son compatibles con TLS 1.2
No tenemos problemas cuando el servidor sale a la superficie TLS 1.0 y posteriores. El problema solo se ve cuando el servidor al que nos conectamos tiene DISABLED TLS 1.0, 1.1 y SSL2 y SSL3. El servidor SÓLO muestra TLS 1.2. Chrome y Firefox (en Win 7 y superior) se conectan bien al servidor (sin advertencias ni problemas de SSL de ningún tipo).
El certificado del servidor es% 100 OK.
El problema es que WebRequest no se conecta en esta situación.
¿Qué debemos configurar en el código para que nuestro uso de WebRequest se conecte a los sistemas que pueden ejecutar TLS 1.2, 1.1, 1.0 y / o SSL v3?
Deberías trabajar con .NET 4.5 o una versión superior y agregar esta línea en tu código:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;