PROBLEMA
Error en páginas ASP.NET que acceden a webservice. El error se produce de forma intermitente.
En el navegador cliente se obtiene el siguiente mensaje:
"Sys.WebForms.PageRequestManagerServerErrorException: Error desconocido al procesar la solicitud en el servidor. El código de estado devuelto por el servidor era: 500"
En depuración se obtiene:
Message: "Se ha terminado la conexión: No se puede establecer una relación de confianza para el canal seguro SSL/TLS."
InnerException: "System.Security.Authentication.AuthenticationException: El certificado remoto no es válido según el procedimiento de validación."
SOLUCIÓN
Forzar explícitamente el establecimiento de las credenciales por defecto del webservice y evitar la validación del certificado si no se requiere.
Código en VB.NET:
System.Net. ServicePointManager. ServerCertificateValidationCal lback = New System.Net.Security. RemoteCertificateValidationCal lback(AddressOf validarCertificado)
Dim miWebService1 As miWebService = New miWebService
miWebService1.Credentials = System.Net.CredentialCache.DefaultCredentials
Private Function validarCertificado(ByVal sender As Object, ByVal certificado As System.Security.Cryptography. X509Certificates. X509Certificate, ByVal cadena As System.Security.Cryptography. X509Certificates.X509Chain, ByVal sslErrores As System.Net.Security. SslPolicyErrors) As Boolean
Return True
End Function
Dim miWebService1 As miWebService = New miWebService
miWebService1.Credentials = System.Net.CredentialCache.DefaultCredentials
Private Function validarCertificado(ByVal sender As Object, ByVal certificado As System.Security.Cryptography.
Return True
End Function