Hvordan fikser man 'Fejl i en eksisterende forbindelse blev tvangsluttet af den eksterne vært'?

En fjerncomputer er den, der ikke har nogen fysisk tilstedeværelse; det er kun tilgængeligt via en slags computernetværk. Fjernhost er den computer, der er vært for netværket, der er vært for fjerncomputeren, og fjernklienten er brugeren af ​​fjernklienten på netværket. Denne funktion har revolutioneret mange processer og har et stort omfang også i fremtiden.

En eksisterende forbindelse blev med magt lukket af den lokale værtfejl

For nylig er der imidlertid kommet mange rapporter om en “ en eksisterende forbindelse blev tvang lukket af den eksterne vært ” -fejl, mens man forsøgte at oprette forbindelse til den eksterne vært. Denne fejl udløses med en socketforbindelse mellem en klient og en server. I denne artikel vil vi levere nogle levedygtige løsninger til fuldstændig udbedring af denne fejl og også informere dig om årsagerne til at udløse denne fejl.

Hvad der forårsager fejlen 'En eksisterende forbindelse blev tvang lukket af den eksterne vært' Fejl i Windows?

Efter at have modtaget adskillige rapporter fra flere brugere, besluttede vi at undersøge problemet og udtænkte et sæt løsninger for at løse det. Vi har også undersøgt årsagerne til, at det udløses, og listet dem nedenfor.

  • Brug af TLS 1.1 / 1.0: Hvis applikationen kører på TLS 1.1 eller TLS 1.0, kan det muligvis udløse denne fejl på grund af, at de afskrives. TLS 1.2 er vejen at gå, når du vælger den protokol, som applikationen bruger.
  • Kryptografi deaktiveret: Hvis kryptering er deaktiveret for din maskine, forhindrer det brugen af ​​TLS 1.2 og falder tilbage på TLS 1.0, hvilket kan udløse fejlen.
  • Socketimplementering: I nogle tilfælde udløser en bestemt type socketimplementering fejlen. Der er en fejl med nogle implementeringer af ".NET" -programmet, og det kan forårsage denne fejl.
  • Manglende kode: For nogle mennesker, der brugte enhedsrammen, blev det observeret, at der manglede en bestemt kodelinje, som fejlen blev udløst til.
  • Forældet “.NET” -ramme: I visse tilfælde, hvis “.NET” -rammen er deaktiveret, kan denne fejl muligvis udløses. Visse opgaver kræver, at “.NET” -rammen opdateres til den nyeste version for at de skal fungere korrekt.

Nu hvor du har en grundlæggende forståelse af problemets art, vil vi gå videre til løsningen. Sørg for at implementere disse i den specifikke rækkefølge, som de præsenteres for at undgå konflikter.

Løsning 1: Aktivering af kryptografi

Hvis kryptografi er deaktiveret for din maskine, er brugen af ​​TLS 1.2 forbudt. Derfor vil vi i dette trin aktivere kryptering. For det:

  1. Tryk på “ Windows ” + “ R ” for at åbne Kør-prompten.
  2. Skriv "regedit", og tryk på " Enter ".

    Indtastning i "Regedit" og tryk på "Enter"
  3. Naviger til følgende adresse
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Naviger til denne adresse, hvis der ikke er nogen ” SchUseStrongCrypto ” -værdi i højre rude.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. I højre rude skal du dobbeltklikke på " SchUseStrongCrypto " -indstillingen og indtaste " 1 " som værdiedata .

    Dobbeltklik på værdien “SchUseStrongCrypto” i højre rude
  5. Klik på “ OK ” for at gemme dine ændringer og kontrollere, om problemet fortsætter.

Løsning 2: Tvinge til brug af TLS 1.2

Hvis applikationen er konfigureret til at bruge TLS 1.1 eller TLS 1.0 i stedet for TLS 1.2, kan det muligvis udløse denne fejl. Derfor vil vi i dette trin konfigurere vores computer til at bruge TLS 1.2. For det:

  1. Naviger til rodens side og højreklik på filen “global.asax” .
  2. Vælg “ Vis kode ” på listen.
  3. Der skal være en " Application_Start " -metode, tilføj følgende kodelinje til denne metode
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    Tilføjelse af linjer til koden
  4. Gem dine ændringer, og kontroller, om problemet fortsætter.

Løsning 3: Ændring af socketimplementering

Hvis en bestemt socketimplementering har en fejl eller fejl i den, kan det forhindre, at visse elementer i applikationen fungerer korrekt, på grund af hvilken denne fejl muligvis kan udløses. Derfor vil vi i dette trin konfigurere det til at bruge en anden implementering. For det:

  1. Sørg for, at du har en " StateObjec t" -klasse med " public byte [] buffer = new byte [1024], public Socket socket; ”.
  2. Kald på funktionen " Modtag (stik) ", og ring følgende kode i " ugyldig modtagecallback (IAsyncResult ar) "
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Kontroller, om problemet fortsætter efter implementering af denne kode.

Løsning 4: Tilføjelse af kommandolinjer (kun til enhedsrammer)

Hvis du bruger enhedsrammen, er det muligt, at en bestemt kodelinje muligvis mangler. Derfor vil vi i dette trin tilføje den kodelinje for at løse dette problem. For det:

  1. Åbn din " .edmx " -fil, og åbn " .context.tt " -filen under den.
  2. Åbn filen " .context.cs " og tilføj følgende kodelinje til din konstruktør
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Kontroller, om problemet fortsætter, når du har tilføjet denne kodelinje.

Løsning 5: Opdatering af .NET Framework

Den seneste version af “.NET” -rammen er påkrævet, for at alt fungerer korrekt. Derfor vil vi i dette trin downloade den nyeste version fra webstedet og installere den. For det:

  1. Naviger til dette link for at downloade opsætningen.
  2. Udfør filen " .exe " for at starte installationsprocessen.

    Kører den eksekverbare downloades fra Microsoft
  3. Følg instruktionerne på skærmen for at installere applikationen på din computer.
  4. Kontroller, om problemet fortsætter, når installationen er afsluttet.

Interessante Artikler