Ako opraviť chybu „Existujúce pripojenie bolo násilne ukončené vzdialeným hostiteľom“?

Vzdialený počítač je ten, ktorý nemá fyzickú prítomnosť; je prístupný iba prostredníctvom nejakej počítačovej siete. Vzdialený hostiteľ je počítač, ktorý je hostiteľom siete, ktorá je hostiteľom vzdialeného počítača, a vzdialený klient je používateľom vzdialeného klienta v sieti. Táto vlastnosť spôsobila revolúciu v mnohých procesoch a má veľký rozsah aj v budúcnosti.

Existujúce pripojenie bolo násilne zatvorené chybou lokálneho hostiteľa

V poslednej dobe sa však pri pokuse o pripojenie k vzdialenému hostiteľovi vyskytlo veľa správ o chybe „ existujúce pripojenie bolo násilne zatvorené vzdialeným hostiteľom “. Táto chyba je vyvolaná soketovým pripojením medzi klientom a serverom. V tomto článku vám poskytneme niektoré realizovateľné riešenia na úplné odstránenie tejto chyby a tiež vás informujeme o dôvodoch, ktoré túto chybu spôsobili.

Čo spôsobuje chybu „Existujúce pripojenie bolo násilne ukončené vzdialeným hostiteľom“ v systéme Windows?

Po prijatí mnohých správ od viacerých používateľov sme sa rozhodli problém prešetriť a navrhli niekoľko riešení na jeho vyriešenie. Tiež sme sa zaoberali dôvodmi, pre ktoré sa spúšťa, a uviedli ich nižšie.

  • Použitie TLS 1.1 / 1.0: Ak je aplikácia spustená na TLS 1.1 alebo TLS 1.0, môže to spôsobiť túto chybu z dôvodu ich odpisovania. TLS 1.2 je spôsob, ako postupovať pri výbere protokolu, ktorý aplikácia používa.
  • Kryptografia zakázaná : Ak je pre váš počítač zakázaná kryptografia, zabráni sa používaniu TLS 1.2 a zníži sa na TLS 1.0, čo by mohlo spôsobiť chybu.
  • Implementácia soketu : V niektorých prípadoch chyba vyvoláva konkrétny typ implementácie soketu. Vyskytla sa chyba s niektorými implementáciami aplikácie „.NET“ a mohla by spôsobiť túto chybu.
  • Chýbajúci kód: U niektorých ľudí, ktorí používali Entity Framework, sa zistilo, že určitý riadok kódu chýba, kvôli ktorému sa chyba vyvolala.
  • Zastaraný rámec „.NET“: V niektorých prípadoch, ak bol rámec „.NET“ zakázaný, môže sa táto chyba spustiť. Niektoré úlohy vyžadujú, aby bol rámec „.NET“ aktualizovaný na najnovšiu verziu, aby mohli správne fungovať.

Teraz, keď už máte základné znalosti o povahe problému, pôjdeme ďalej k riešeniam. Uistite sa, že sú implementované v špecifickom poradí, v akom sú prezentované, aby sa predišlo konfliktom.

Riešenie 1: Povolenie kryptografie

Ak bola pre váš počítač zakázaná kryptografia, používanie protokolu TLS 1.2 je zakázané. Preto v tomto kroku povolíme kryptografiu. Pre to:

  1. Stlačením klávesov „ Windows “ + „ R “ otvorte výzvu Spustiť.
  2. Zadajte „regedit“ a stlačte „ Enter “.

    Zadaním „Regedit“ a stlačením „Enter“
  3. Prejdite na nasledujúcu adresu
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Ak na pravej table nie je žiadna hodnota „ SchUseStrongCrypto “, prejdite na túto adresu.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. Na pravej table dvakrát kliknite na možnosť „ SchUseStrongCrypto “ a ako hodnotu Value zadajte „ 1 “.

    Dvojitým kliknutím na hodnotu „SchUseStrongCrypto“ v pravom paneli
  5. Kliknutím na tlačidloOK “ uložte zmeny a skontrolujte, či problém pretrváva.

Riešenie 2: Vynútenie použitia TLS 1.2

Ak je aplikácia nakonfigurovaná na používanie TLS 1.1 alebo TLS 1.0 namiesto TLS 1.2, môže to spôsobiť túto chybu. Preto v tomto kroku nakonfigurujeme náš počítač tak, aby používal TLS 1.2. Pre to:

  1. Prejdite do koreňového adresára webu a kliknite pravým tlačidlom myši na súbor „global.asax“ .
  2. V zozname vyberte možnosť „ Zobraziť kód “.
  3. Mala by existovať metóda „ Application_Start “, do tejto metódy pridajte nasledujúci riadok kódu
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    Pridanie riadkov do kódu
  4. Uložte zmeny a skontrolujte, či problém pretrváva.

Riešenie 3: Zmena implementácie zásuvky

Ak má určitá implementácia soketu chybu alebo poruchu, môže to zabrániť správnemu fungovaniu určitých prvkov aplikácie, v dôsledku čoho by sa mohla táto chyba spustiť. Preto v tomto kroku ho nakonfigurujeme na použitie inej implementácie. Pre to:

  1. Uistite sa, že máte triedu „ StateObjec t“ s „ public byte [] buffer = new byte [1024], public socket; ".
  2. Zavolajte funkciu „ Prijať (Socket s) “ a zavolajte nasledujúci kód v „ void ReceiveCallback (IAsyncResult ar)
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Po implementácii tohto kódu skontrolujte, či problém pretrváva.

Riešenie 4: Pridanie príkazových riadkov (iba pre entitu Framework)

Ak používate Entity Framework, je možné, že určitý riadok kódu môže chýbať. Preto v tomto kroku pridáme tento riadok kódu, aby sme tento problém vyriešili. Pre to:

  1. Otvorte súbor „ .edmx “ a pod ním otvorte súbor „ .context.tt “.
  2. Otvorte súbor „ .context.cs “ a do svojho konštruktora pridajte nasledujúci riadok kódu
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Po pridaní tohto riadku kódu skontrolujte, či problém pretrváva.

Riešenie 5: Aktualizácia .NET Framework

Aby všetko fungovalo hladko, je potrebná najnovšia verzia rámca „.NET“. Preto v tomto kroku stiahneme najnovšiu verziu z webu a nainštalujeme ju. Pre to:

  1. Prejdite na tento odkaz a stiahnite si nastavenie.
  2. Spustite súbor „ .exe “ a spustite proces inštalácie.

    Spustenie spustiteľného súboru stiahnutého od spoločnosti Microsoft
  3. Nainštalujte aplikáciu do počítača podľa pokynov na obrazovke.
  4. Po dokončení inštalácie skontrolujte, či problém pretrváva.

Zaujímavé Články