Hur man fixar & lsquo; En befintlig anslutning stängdes med våld av fjärrvärden & rsquo; Fel?

En fjärrdator är den som inte har någon fysisk närvaro; det kan endast nås via någon form av datornätverk. Fjärrvärden är den dator som är värd för nätverket som är värd för fjärrdatorn och fjärrklienten är användaren av fjärrklienten i nätverket. Denna funktion har revolutionerat många processer och har ett stort omfång även i framtiden.

Men nyligen har många rapporter kommit in om ett " en befintlig anslutning tvingades stängas av fjärrvärden " när man försökte ansluta till fjärrvärden. Det här felet utlöses med en sockelanslutning mellan en klient och en server. I den här artikeln kommer vi att tillhandahålla några lönsamma lösningar för att helt rätta till detta fel och informera dig också om orsakerna till att detta fel uppstår.

Vad orsakar "En befintlig anslutning tvingades stängas av fjärrvärden" -felet i Windows?

Efter att ha fått flera rapporter från flera användare bestämde vi oss för att undersöka problemet och tog fram en uppsättning lösningar för att åtgärda det. Vi tittade också på orsakerna till att den utlöstes och listade dem nedan.

  • TLS 1.1 / 1.0-användning: Om applikationen körs på TLS 1.1 eller TLS 1.0 kan det utlösa detta fel på grund av att de skrivs av. TLS 1.2 är vägen att gå när du väljer det protokoll som applikationen använder.
  • Kryptografi inaktiverad: Om kryptografi har inaktiverats för din maskin kommer det att förhindra användning av TLS 1.2 och kommer att falla tillbaka på TLS 1.0 vilket kan utlösa felet.
  • Socket Implementation: I vissa fall utlöser en viss typ av socketimplementering felet. Det finns ett fel med vissa implementeringar av ".NET" -applikationen och det kan orsaka detta fel.
  • Saknad kod: För vissa personer som använde Entity Framework observerades att en viss kodrad saknades på grund av vilket felet utlöstes.
  • Föråldrad ".NET" Framework: I vissa fall, om ".NET" Framework har inaktiverats kan detta fel utlösas. Vissa uppgifter kräver att “.NET” -ramverket uppdateras till den senaste versionen för att de ska fungera korrekt.

Nu när du har en grundläggande förståelse för problemets natur kommer vi att gå vidare mot lösningarna. Se till att implementera dessa i den specifika ordning i vilken de presenteras för att undvika konflikter.

Lösning 1: Aktivera kryptografi

Om kryptografi har inaktiverats för din maskin är användning av TLS 1.2 förbjuden. Därför kommer vi i detta steg att aktivera kryptografi. För det:

  1. Tryck på " Windows " + " R " för att öppna körprompten.
  2. Skriv “regedit” och tryck “ Enter ”.
  3. Navigera till följande adress
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031

    Navigera till den här adressen om det inte finns något “ SchUseStrongCrypto-värde i den högra rutan.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319
  4. I den högra rutan dubbelklickar du på alternativet “ SchUseStrongCrypto ” och anger “ 1 ” som värdedata.
  5. Klicka på “ OK ” för att spara dina ändringar och kontrollera om problemet kvarstår.

Lösning 2: Tvinga TLS 1.2-användning

Om applikationen har konfigurerats för att använda TLS 1.1 eller TLS 1.0 istället för TLS 1.2 kan det utlösa detta fel. I detta steg kommer vi därför att konfigurera vår dator för att använda TLS 1.2. För det:

  1. Navigera till rotens webbplats och högerklicka på filen “global.asax” .
  2. Välj " Visa kod " i listan.
  3. Det bör finnas en " Application_Start " -metod, lägg till följande kodrad i den metoden
    om (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) SecurityProtocolType. Tls12;              
  4. Spara dina ändringar och kontrollera om problemet kvarstår.

Lösning 3: Ändra sockelimplementering

Om en viss sockelimplementering har en bugg eller fel kan det förhindra att vissa delar av applikationen fungerar korrekt, vilket kan orsaka detta fel. Därför kommer vi i detta steg att konfigurera den för att använda en annan implementering. För det:

  1. Se till att du har en “ StateObjec t” -klass med “ public byte [] buffer = new byte [1024], public Socket socket; “.
  2. Ring “ Mottag (sockel s) ” -funktionen och ring följande kod i ” ogiltig ReceiveCallback (IAsyncResult ar)
     SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar , out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Kontrollera om problemet kvarstår efter implementering av den här koden.

Lösning 4: Lägga till kommandorader (endast för Entity Framework)

Om du använder Entity Framework är det möjligt att en viss kodrad kan saknas. Därför kommer vi i det här steget att lägga till den kodraden för att lösa problemet. För det:

  1. Öppna din " .edmx " -fil och öppna filen " .context.tt " under den.
  2. Öppna filen " .context.cs " och lägg till följande rad kod till din konstruktör
     public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Kontrollera om problemet kvarstår efter att du har lagt till denna kodrad.

Lösning 5: Uppdatering av .NET Framework

Den senaste versionen av “.NET” Framework krävs för att allt ska fungera smidigt. Därför kommer vi i det här steget att ladda ner den senaste versionen från webbplatsen och installera den. För det:

  1. Navigera till den här länken för att ladda ner installationen.
  2. Kör “ .exe ” -filen för att starta installationsprocessen.
  3. Följ instruktionerna på skärmen för att installera programmet på din dator.
  4. Kontrollera om problemet kvarstår efter installationen.

Rekommenderas

Fix: Minecraft svarar inte
Vad är en ansökan om registrering av digital-TV-mottagare och bör den tas bort?
Vad är FileRepMalware och ska du ta bort det