Hoe te repareren 'Een bestaande verbinding werd gedwongen gesloten door de externe host' Fout?

Een externe computer is degene die geen fysieke aanwezigheid heeft; het is alleen toegankelijk via een soort computernetwerk. De externe host is de computer die als host fungeert voor het netwerk waarop de externe computer wordt gehost en de externe client is de gebruiker van de externe client in het netwerk. Deze functie heeft een revolutie teweeggebracht in veel processen en heeft ook in de toekomst een grote reikwijdte.

Een bestaande verbinding is geforceerd gesloten door de lokale hostfout

Vrij recent zijn er echter veel rapporten binnengekomen over een fout " Een bestaande verbinding werd geforceerd verbroken door de externe host " tijdens een poging om verbinding te maken met de externe host. Deze fout wordt veroorzaakt door een socketverbinding tussen een client en een server. In dit artikel zullen we enkele haalbare oplossingen bieden om deze fout volledig te corrigeren en u ook informeren over de redenen die deze fout veroorzaken.

Wat veroorzaakt de fout 'Een bestaande verbinding is geforceerd gesloten door de externe host' in Windows?

Nadat we meerdere rapporten van meerdere gebruikers hadden ontvangen, hebben we besloten het probleem te onderzoeken en een reeks oplossingen bedacht om het op te lossen. We hebben ook de redenen onderzocht waarom het is geactiveerd en hebben ze hieronder vermeld.

  • TLS 1.1 / 1.0 Gebruik: als de toepassing op TLS 1.1 of TLS 1.0 wordt uitgevoerd, kan deze fout worden veroorzaakt doordat ze worden afgeschreven. TLS 1.2 is de beste manier om het protocol te selecteren dat de toepassing gebruikt.
  • Cryptografie uitgeschakeld: als Cryptografie voor uw machine is uitgeschakeld, voorkomt dit het gebruik van TLS 1.2 en valt het terug op TLS 1.0 waardoor de fout kan worden veroorzaakt.
  • Socketimplementatie: in sommige gevallen veroorzaakt een bepaald type socketimplementatie de fout. Er is een bug met sommige implementaties door de ".NET" -toepassing en deze kan deze fout veroorzaken.
  • Ontbrekende code: voor sommige mensen die het Entity Framework gebruikten, werd vastgesteld dat een bepaalde coderegel ontbrak waardoor de fout werd geactiveerd.
  • Verouderd ".NET" Framework: in bepaalde gevallen, als het ".NET" Framework is uitgeschakeld, kan deze fout worden geactiveerd. Voor bepaalde taken moet het ".NET" -raamwerk worden bijgewerkt naar de nieuwste versie om goed te kunnen werken.

Nu u een basiskennis hebt van de aard van het probleem, gaan we verder met de oplossingen. Zorg ervoor dat u deze implementeert in de specifieke volgorde waarin ze worden gepresenteerd om conflicten te voorkomen.

Oplossing 1: cryptografie inschakelen

Als Cryptografie is uitgeschakeld voor uw machine, is het gebruik van TLS 1.2 verboden. Daarom zullen we in deze stap Cryptografie inschakelen. Daarom:

  1. Druk op " Windows " + " R " om de prompt Uitvoeren te openen.
  2. Typ "regedit" en druk op " Enter ".

    Typ "Regedit" en druk op "Enter"
  3. Navigeer naar het volgende adres
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Navigeer naar dit adres als er geen " SchUseStrongCrypto " -waarde in het rechterdeelvenster staat.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. Dubbelklik in het rechterdeelvenster op de optie " SchUseStrongCrypto " en voer " 1 " in als Waardegegevens .

    Dubbelklik op de waarde "SchUseStrongCrypto" in het rechterdeelvenster
  5. Klik op " OK " om uw wijzigingen op te slaan en controleer of het probleem blijft bestaan.

Oplossing 2: TLS 1.2-gebruik forceren

Als de toepassing is geconfigureerd om TLS 1.1 of TLS 1.0 te gebruiken in plaats van TLS 1.2, kan deze fout worden veroorzaakt. Daarom zullen we in deze stap onze computer configureren om TLS 1.2 te gebruiken. Daarom:

  1. Navigeer naar de hoofdmap van de site en klik met de rechtermuisknop op het bestand "global.asax" .
  2. Selecteer " View Code " in de lijst.
  3. Er zou een “ Application_Start ” -methode moeten zijn, voeg de volgende coderegel toe aan die methode
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    De regels aan de code toevoegen
  4. Sla uw wijzigingen op en controleer of het probleem blijft bestaan.

Oplossing 3: Socket-implementatie wijzigen

Als een bepaalde socket-implementatie een bug of glitch bevat, kan het voorkomen dat bepaalde elementen van de toepassing niet goed werken waardoor deze fout kan worden geactiveerd. Daarom zullen we deze stap in deze stap configureren om een ​​andere implementatie te gebruiken. Daarom:

  1. Zorg ervoor dat u een " StateObjec t" -klasse hebt met " public byte [] buffer = new byte [1024], public Socket socket; “.
  2. Roep de functie " Ontvangen (Socket s) " aan en noem de volgende code in " void ReceiveCallback (IAsyncResult ar) "
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Controleer of het probleem aanhoudt na implementatie van deze code.

Oplossing 4: opdrachtregels toevoegen (alleen voor Entity Framework)

Als u het Entity Framework gebruikt, is het mogelijk dat een bepaalde coderegel ontbreekt. Daarom voegen we in deze stap die coderegel toe om dit probleem op te lossen. Daarom:

  1. Open uw " .edmx " -bestand en open het " .context.tt " -bestand eronder.
  2. Open het bestand " .context.cs " en voeg de volgende coderegel toe aan uw constructor
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Controleer of het probleem aanhoudt na het toevoegen van deze coderegel.

Oplossing 5: .NET Framework bijwerken

De nieuwste versie van het ".NET" Framework is vereist om alles soepel te laten werken. Daarom zullen we in deze stap de nieuwste versie van de site downloaden en installeren. Daarom:

  1. Navigeer naar deze link om de installatie te downloaden.
  2. Voer het " .exe " -bestand uit om het installatieproces te starten.

    Het uitvoerbare bestand uitvoeren dat is gedownload van Microsoft
  3. Volg de instructies op het scherm om de applicatie op uw computer te installeren.
  4. Controleer of het probleem blijft bestaan ​​nadat de installatie is voltooid.

Interessante Artikelen