Saltar al contenido

El host remoto cerró a la fuerza una conexión existente

Hacemos una verificación profunda cada tutorial en nuestra web con el objetivo de enseñarte siempre la información certera y actualizada.

Solución:

Esto generalmente significa que el lado remoto cerró la conexión (generalmente enviando un mensaje TCP/IP). RST paquete). Si está trabajando con una aplicación de terceros, las causas probables son:

  • Está enviando datos con formato incorrecto a la aplicación (lo que podría incluir el envío de una solicitud HTTPS a un servidor HTTP)
  • El enlace de red entre el cliente y el servidor está fallando por alguna razón
  • Ha desencadenado un error en la aplicación de terceros que provocó que se bloqueara
  • La aplicación de terceros ha agotado los recursos del sistema

Es probable que el primer caso sea lo que está pasando.

Puede iniciar Wireshark para ver exactamente lo que está sucediendo en el cable para reducir el problema.

Sin información más específica, es poco probable que alguien aquí realmente pueda ayudarlo mucho.

El uso de TLS 1.2 resolvió este error.
Puede forzar su aplicación usando TLS 1.2 con esto (asegúrese de ejecutarlo antes de llamar a su servicio):

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 

Otra solución :

Habilite la criptografía sólida en su máquina o servidor local para usar TLS1.2 porque, de manera predeterminada, está deshabilitada, por lo que solo se usa TLS1.0.
Para habilitar una criptografía sólida, ejecute estos comandos en PowerShell con privilegios de administrador:

Set-ItemProperty -Path 'HKLM:SOFTWAREWow6432NodeMicrosoft.NetFrameworkv4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
Set-ItemProperty -Path 'HKLM:SOFTWAREMicrosoft.NetFrameworkv4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord 

Debe reiniciar su computadora para que estos cambios surtan efecto.

Esto no es un error en su código. Proviene de la implementación de Socket de .Net. Si usa la implementación sobrecargada de EndReceive como se muestra a continuación, no obtendrá esta excepción.

    SocketError errorCode;
    int nBytesRec = socket.EndReceive(ar, out errorCode);
    if (errorCode != SocketError.Success)
    
        nBytesRec = 0;
    

Te invitamos a confirmar nuestro cometido fijando un comentario o puntuándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *