Hur fixar jag felet "En befintlig anslutning stängdes av fjärrvärden"?

En fjärrdator är den som inte har någon fysisk närvaro; det går bara åt via ett 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 utrymme också i framtiden.

En befintlig anslutning stängdes med kraft av det lokala värdfelet

Men nyligen har många rapporter kommit in om ett " en befintlig anslutning stängdes med kraft av fjärrvärden " -fel medan jag försökte ansluta till fjärrvärden. Det här felet utlöses med en socketanslutning mellan en klient och en server. I den här artikeln kommer vi att tillhandahålla några hållbara lösningar för att fullständigt korrigera detta fel och också informera dig om orsakerna till detta fel.

Vad orsakar felet 'En befintlig anslutning stängdes med tvång av fjärrvärden' Fel i Windows?

Efter att ha fått flera rapporter från flera användare beslutade vi att undersöka problemet och utformade en uppsättning lösningar för att lösa det. Vi tittade också på orsakerna till att det utlöses 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 avskrivs. TLS 1.2 är vägen att gå när du väljer det protokoll som applikationen använder.
  • Cryptography Disabled: Om Cryptography har inaktiverats för din maskin kommer det att förhindra användningen av TLS 1.2 och faller 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 implementationer av ".NET" -applikationen och det kan orsaka felet.
  • Saknad kod: För vissa personer som använde enhetsramverket observerades det att en viss kodrad saknades på grund av att felet utlöste.
  • Föråldrad ".NET" -ram: I vissa fall, om ".NET" -ramverket har inaktiverats, kan det här felet 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 de presenteras för att undvika konflikter.

Lösning 1: Aktivera kryptografi

Om kryptografi har inaktiverats för din maskin är TLS 1.2 förbjudet. Därför möjliggör vi i detta steg kryptografi. För det:

  1. Tryck på “ Windows ” + “ R ” för att öppna Kör-prompten.
  2. Skriv in "regedit" och tryck på " Enter ".

    Att skriva i "Regedit" och trycka på "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 det högra fönstret dubbelklickar du på alternativet “ SchUseStrongCrypto ” och anger “ 1 ” som värdedata.

    Dubbelklicka på värdet ”SchUseStrongCrypto” i den högra rutan
  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. Därför kommer vi i detta steg att konfigurera vår dator för att använda TLS 1.2. För det:

  1. Navigera till roten på webbplatsen 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 rad med kod till den metoden
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == falskt) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    Lägga till raderna till koden
  4. Spara dina ändringar och kolla om problemet kvarstår.

Lösning 3: Byta uttag för uttag

Om en viss socketimplementering har ett fel eller fel i det kan det förhindra att vissa delar av applikationen fungerar korrekt på grund av att detta fel kan utlösas. Därför konfigurerar vi det här steget för att använda en annan implementering. För det:

  1. Se till att du har en " StateObjec t" -klass med " public byte [] buffert = new byte [1024], public Socket socket; ”.
  2. Ring funktionen “ Ta emot (Socket s) ” och ring följande kod i “ void 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 enhetsramar)

Om du använder Entity Framework kan det hända att en viss kodrad saknas. I det här steget kommer vi därför att lägga till den raden för att lösa problemet. För det:

  1. Öppna din " .edmx " -fil och öppna " .context.tt " -filen nedanför.
  2. Öppna filen " .context.cs " och lägg till följande kodrad 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 den här kodraden.

Lösning 5: Uppdatering av .NET Framework

Den senaste versionen av ".NET" -ramverket krävs för att allt ska fungera smidigt. Därför kommer vi i detta steg att ladda ner den senaste versionen från sajten och installera den. För det:

  1. Navigera till den här länken för att ladda ner installationen.
  2. Kör filen " .exe " för att starta installationsprocessen.

    Kör den körbara datorn som laddats ner från Microsoft
  3. Följ instruktionerna på skärmen för att installera applikationen på din dator.
  4. Kontrollera om problemet kvarstår efter installationen.

Intressanta Artiklar