Hvordan fikser jeg feilen "En eksisterende tilkobling ble lukket med den eksterne verten"?

En ekstern datamaskin er den som ikke har fysisk tilstedeværelse; det er bare tilgang til det via et datanettverk. Den eksterne verten er datamaskinen som er vert for nettverket som er vert for den eksterne datamaskinen, og den eksterne klienten er brukeren av den eksterne klienten i nettverket. Denne funksjonen har revolusjonert mange prosesser og har et stort omfang også i fremtiden.

En eksisterende tilkobling ble tvangsstengt av den lokale vertsfeilen

Imidlertid har ganske nylig kommet mange rapporter om en " en eksisterende tilkobling ble tvang stengt av ekstern vert " -feil mens du prøvde å koble til den eksterne verten. Denne feilen utløses med en socketforbindelse mellom en klient og en server. I denne artikkelen vil vi tilby noen levedyktige løsninger for å rette opp denne feilen fullstendig og også informere deg om årsakene som utløser denne feilen.

Hva er årsaken til 'En eksisterende tilkobling ble tvangsstengt av den eksterne verten' Feil i Windows?

Etter å ha mottatt en rekke rapporter fra flere brukere, bestemte vi oss for å undersøke problemet og utviklet et sett med løsninger for å løse det. Vi har også sett på årsakene det er utløst og listet dem nedenfor.

  • Bruk av TLS 1.1 / 1.0: Hvis applikasjonen kjører på TLS 1.1 eller TLS 1.0, kan det utløse denne feilen fordi de blir avskrevet. TLS 1.2 er veien å gå når du velger protokollen som applikasjonen bruker.
  • Kryptografi deaktivert: Hvis kryptografi er deaktivert for maskinen din, forhindrer det bruken av TLS 1.2 og vil falle tilbake på TLS 1.0, noe som kan utløse feilen.
  • Socket Implementering: I noen tilfeller utløser en bestemt type socketimplementering feilen. Det er en feil med noen implementeringer av ". NET" -programmet, og det kan føre til denne feilen.
  • Manglende kode: For noen mennesker som brukte Entity Framework, ble det observert at en viss kodelinje manglet på grunn av at feilen ble utløst.
  • Utdatert “.NET” -rammeverk: I visse tilfeller, hvis “.NET” -rammen er deaktivert, kan denne feilen utløses. Enkelte oppgaver krever at ".NET" -rammen blir oppdatert til den nyeste versjonen for at de skal fungere ordentlig.

Nå som du har en grunnleggende forståelse av problemets natur, vil vi gå videre mot løsningene. Sørg for å implementere disse i den spesifikke rekkefølgen de presenteres for å unngå konflikter.

Løsning 1: Aktivering av kryptografi

Hvis kryptografi er deaktivert for maskinen din, er bruken av TLS 1.2 forbudt. Derfor vil vi i dette trinnet aktivere kryptografi. For det:

  1. Trykk “ Windows ” + “ R ” for å åpne Kjør-ledeteksten.
  2. Skriv inn “regedit” og trykk “ Enter ”.

    Å skrive inn “Regedit” og trykke “Enter”
  3. Naviger til følgende adresse
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Naviger til denne adressen hvis det ikke er noen " SchUseStrongCrypto " -verdi i høyre rute.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. I høyre rute dobbeltklikker du på alternativet “ SchUseStrongCrypto ” og skriver “ 1 ” som Verdidata.

    Dobbeltklikk på “SchUseStrongCrypto” -verdien i høyre rute
  5. Klikk på " OK " for å lagre endringene dine og sjekk om problemet vedvarer.

Løsning 2: Tvinge bruk av TLS 1.2

Hvis applikasjonen er konfigurert til å bruke TLS 1.1 eller TLS 1.0 i stedet for TLS 1.2, kan det utløse denne feilen. Derfor vil vi i dette trinnet konfigurere datamaskinen vår til å bruke TLS 1.2. For det:

  1. Naviger til roten til nettstedet og høyreklikk på filen “global.asax” .
  2. Velg “ Vis kode ” fra listen.
  3. Det bør være en " Application_Start " -metode, legg til følgende kodelinje til den metoden
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    Legger linjene til koden
  4. Lagre endringene dine og sjekk om problemet vedvarer.

Løsning 3: Endring av implementering av stikkontakt

Hvis en bestemt socketimplementering har en feil eller svikt i seg, kan det forhindre at visse elementer i applikasjonen fungerer som den skal, fordi denne feilen kan utløses. Derfor vil vi i dette trinnet konfigurere den til å bruke en annen implementering. For det:

  1. Forsikre deg om at du har en “ StateObjec t” -klasse med “ public byte [] buffer = new byte [1024], public Socket socket; “.
  2. Ring funksjonen “ Motta ( sokler ) ” og ring følgende kode i “ ugyldig mottakCallback (IAsyncResult ar)
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Sjekk om problemet vedvarer etter implementering av denne koden.

Løsning 4: Legge til kommandolinjer (bare for enhetsrammer)

Hvis du bruker Entity Framework, er det mulig at en bestemt kodelinje mangler. Derfor vil vi i dette trinnet legge til den kodelinjen for å løse dette problemet. For det:

  1. Åpne " .edmx " -filen og åpne " .context.tt " -filen under den.
  2. Åpne filen " .context.cs " og legg til følgende kodelinje til konstruktøren
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Sjekk om problemet vedvarer etter å ha lagt til denne kodelinjen.

Løsning 5: Oppdatering av .NET Framework

Den siste versjonen av “.NET” Framework er nødvendig for at alt skal fungere jevnt. Derfor vil vi i dette trinnet laste ned den nyeste versjonen fra nettstedet og installere den. For det:

  1. Naviger til denne lenken for å laste ned oppsettet.
  2. Utfør “ .exe ” -filen for å starte installasjonsprosessen.

    Kjører den kjørbare lastet ned fra Microsoft
  3. Følg instruksjonene på skjermen for å installere applikasjonen på datamaskinen din.
  4. Kontroller om problemet vedvarer etter at installasjonen er fullført.

Interessante Artikler