Come risolvere l'errore "Una connessione esistente è stata forzatamente chiusa dall'host remoto" Errore?

Un computer remoto è quello che non ha presenza fisica; è possibile accedervi solo attraverso una sorta di rete di computer. L'host remoto è il computer che ospita la rete che ospita il computer remoto e il client remoto è l'utente del client remoto sulla rete. Questa funzione ha rivoluzionato molti processi e ha un ampio raggio anche in futuro.

Una connessione esistente è stata forzatamente chiusa dall'errore dell'host locale

Tuttavia, abbastanza recentemente, sono stati segnalati molti errori relativi a un errore " una connessione esistente è stata forzatamente chiusa dall'host remoto " durante il tentativo di connettersi all'host remoto. Questo errore viene attivato con una connessione socket tra un client e un server. In questo articolo, forniremo alcune soluzioni praticabili per correggere completamente questo errore e ti informeremo anche dei motivi che causano questo errore.

Che cosa causa l'errore "Una connessione esistente è stata forzatamente chiusa dall'host remoto" in Windows?

Dopo aver ricevuto numerosi report da più utenti, abbiamo deciso di indagare sul problema e abbiamo escogitato una serie di soluzioni per risolverlo. Inoltre, abbiamo esaminato i motivi per cui è stato attivato e li abbiamo elencati di seguito.

  • Utilizzo di TLS 1.1 / 1.0: se l'applicazione è in esecuzione su TLS 1.1 o TLS 1.0, potrebbe causare questo errore a causa del deprezzamento. TLS 1.2 è la strada da percorrere quando si seleziona il protocollo utilizzato dall'applicazione.
  • Crittografia disabilitata: se la crittografia è stata disabilitata per il tuo computer, impedirà l'utilizzo di TLS 1.2 e ricadrà su TLS 1.0 che potrebbe causare l'errore.
  • Implementazione socket: in alcuni casi, un particolare tipo di implementazione socket genera l'errore. Esiste un bug con alcune implementazioni dell'applicazione ".NET" e potrebbe causare questo errore.
  • Codice mancante: per alcune persone che utilizzavano Entity Framework, è stato osservato che mancava una determinata riga di codice a causa della quale si stava verificando l'errore.
  • Framework ".NET" obsoleto: in alcuni casi, se il framework ".NET" è stato disabilitato, questo errore potrebbe essere attivato. Alcune attività richiedono che il framework ".NET" sia aggiornato all'ultima versione affinché funzioni correttamente.

Ora che hai una conoscenza di base della natura del problema, passeremo alle soluzioni. Assicurati di implementarli nell'ordine specifico in cui sono presentati per evitare conflitti.

Soluzione 1: abilitazione della crittografia

Se la crittografia è stata disabilitata per il computer in uso, l'uso di TLS 1.2 è vietato. Pertanto, in questo passaggio, abiliteremo la crittografia. Per quello:

  1. Premere " Windows " + " R " per aprire il prompt Esegui.
  2. Digita "regedit" e premi " Invio ".

    Digitando "Regedit" e premendo "Invio"
  3. Passare al seguente indirizzo
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Passare a questo indirizzo se non è presente alcun valore " SchUseStrongCrypto " nel riquadro destro.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. Nel riquadro destro, fare doppio clic sull'opzione " SchUseStrongCrypto " e immettere " 1 " come dati valore.

    Fare doppio clic sul valore "SchUseStrongCrypto" nel riquadro destro
  5. Fare clic su " OK " per salvare le modifiche e verificare se il problema persiste.

Soluzione 2: forzare l'utilizzo di TLS 1.2

Se l'applicazione è stata configurata per utilizzare TLS 1.1 o TLS 1.0 anziché TLS 1.2, è possibile che si verifichi questo errore. Pertanto, in questo passaggio, configureremo il nostro computer per utilizzare TLS 1.2. Per quello:

  1. Passare alla radice del sito e fare clic con il tasto destro del mouse sul file "global.asax" .
  2. Seleziona " Visualizza codice " dall'elenco.
  3. Dovrebbe esserci un metodo " Application_Start ", aggiungere la seguente riga di codice a quel metodo
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    Aggiunta di righe al codice
  4. Salva le modifiche e controlla se il problema persiste.

Soluzione 3: modifica dell'implementazione del socket

Se una determinata implementazione di socket ha un bug o un errore, potrebbe impedire il corretto funzionamento di alcuni elementi dell'applicazione a causa della quale questo errore potrebbe essere attivato. Pertanto, in questo passaggio, lo configureremo per utilizzare un'implementazione diversa. Per quello:

  1. Assicurarsi di disporre di una classe " StateObjec t" con " buffer byte pubblico [] = nuovo byte [1024], socket socket pubblico; “.
  2. Chiamare la funzione " Ricevi (Socket) " e chiamare il seguente codice in " void ReceiveCallback (IAsyncResult ar) "
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Verifica se il problema persiste dopo aver implementato questo codice.

Soluzione 4: aggiunta di righe di comando (solo per Entity Framework)

Se si utilizza Entity Framework, è possibile che manchi una determinata riga di codice. Pertanto, in questo passaggio, aggiungeremo quella riga di codice per risolvere questo problema. Per quello:

  1. Apri il tuo file " .edmx " e apri il file " .context.tt " sotto di esso.
  2. Apri il file " .context.cs " e aggiungi la seguente riga di codice al costruttore
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Verifica se il problema persiste dopo aver aggiunto questa riga di codice.

Soluzione 5: aggiornamento di .NET Framework

È necessaria l'ultima versione del framework ".NET" affinché tutto funzioni senza intoppi. Pertanto, in questo passaggio, scaricheremo l'ultima versione dal sito e la installeremo. Per quello:

  1. Passare a questo collegamento per scaricare l'installazione.
  2. Eseguire il file " .exe " per avviare il processo di installazione.

    Esecuzione dell'eseguibile scaricato da Microsoft
  3. Segui le istruzioni su schermo per installare l'applicazione sul tuo computer.
  4. Verifica se il problema persiste dopo aver completato l'installazione.

Articoli Interessanti