sábado, 15 de enero de 2011

ASP.NET. Error de credenciales al acceder a webservice


 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.ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(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

6 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Como puedo enviar un mensaje de error al consumir un ws en c# desde el web.config cuando se me cumpla una condición X que yo le establezca. Gracias

    ResponderEliminar
  3. Muchas Gracias, si funciona.. habia estado probando con el puerto, el SSL , etc y ya me estaba desesperando...

    ResponderEliminar
  4. Hola.. buenas tardes. Yo tengo el mismo problema.. ingrese el código arriba mostrado y por lo menos cambio el error.. ahora dice que "La respuesta no es código XML correcto".

    Es un Webservice que funcionaba muy bien.. este lo mando llamar en mis aplicaciones de visual.net y todo era correcto. Hasta que cambiaron los protocolos de seguridad a tls 1.2 y los cambie en mi servidor windows.. y nada...me podrian orientar por favor.. saludos..

    ResponderEliminar
  5. Betway Casino $25 Free No Deposit Bonus Code for Dec 2021
    Betway 김해 출장안마 Casino $25 Free No Deposit Bonus 오산 출장안마 Code 2021 | December 2021 구리 출장마사지 | Betway Casino. New players only. Minimum deposit: $10. Valid for casinos  Rating: 세종특별자치 출장샵 1 화성 출장샵 · ‎Review by Ayden Hahn

    ResponderEliminar