Jak opravit & lsquo; Existující připojení bylo vynuceně uzavřeno vzdáleným hostitelem & rsquo; Chyba?

Vzdálený počítač je ten, který nemá fyzickou přítomnost; je k němu přístup pouze prostřednictvím jakési počítačové sítě. Vzdálený hostitel je počítač hostující síť, který je hostitelem vzdáleného počítače, a vzdálený klient je uživatel vzdáleného klienta v síti. Tato funkce způsobila převrat v mnoha procesech a má velký rozsah i v budoucnu.

Poměrně nedávno však přišlo mnoho zpráv o chybě „ existující připojení bylo vynuceně uzavřeno vzdáleným hostitelem “ při pokusu o připojení ke vzdálenému hostiteli. Tato chyba se aktivuje soketovým připojením mezi klientem a serverem. V tomto článku poskytneme několik životaschopných řešení k úplné nápravě této chyby a také vás informujeme o důvodech, které tuto chybu spouštějí.

Co způsobuje chybu „Existující připojení bylo násilně uzavřeno vzdáleným hostitelem“ v systému Windows?

Po obdržení mnoha zpráv od více uživatelů jsme se rozhodli problém prozkoumat a vymysleli jsme sadu řešení, jak jej opravit. Podívali jsme se také na důvody, kvůli kterým se spouští, a uvedli jsme je níže.

  • Použití TLS 1.1 / 1.0: Pokud je aplikace spuštěna na TLS 1.1 nebo TLS 1.0, může tuto chybu spustit kvůli jejich znehodnocení. TLS 1.2 je způsob, jak jít při výběru protokolu, který aplikace používá.
  • Kryptografie zakázána: Pokud byla pro váš počítač zakázána kryptografie, zabrání to použití protokolu TLS 1.2 a spadne zpět na protokol TLS 1.0, který by mohl způsobit chybu.
  • Implementace soketu: V některých případech spustí chybu konkrétní typ implementace soketu. U některých implementací aplikace „.NET“ došlo k chybě, která by mohla způsobit tuto chybu.
  • Chybějící kód: U některých lidí, kteří používali Entity Framework, bylo zjištěno, že chybí určitý řádek kódu, kvůli kterému byla chyba spuštěna.
  • Zastaralý rámec „.NET“: V určitých případech, pokud byl rámec „.NET“ deaktivován, může dojít k aktivaci této chyby. Některé úlohy vyžadují, aby byl rámec „.NET“ aktualizován na nejnovější verzi, aby správně fungovaly.

Nyní, když máte základní znalosti o povaze problému, přejdeme k řešení. Nezapomeňte je implementovat v konkrétním pořadí, v jakém jsou uvedeny, aby nedocházelo ke konfliktům.

Řešení 1: Povolení kryptografie

Pokud byla pro váš počítač zakázána kryptografie, je použití protokolu TLS 1.2 zakázáno. Proto v tomto kroku povolíme kryptografii. Pro to:

  1. Stisknutím kláves „ Windows “ + „ R “ otevřete výzvu Spustit.
  2. Zadejte „regedit“ a stiskněte „ Enter “.
  3. Přejděte na následující adresu
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031

    Přejděte na tuto adresu, pokud v pravém podokně není hodnota „ SchUseStrongCrypto “.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319
  4. V pravém podokně poklepejte na možnost „ SchUseStrongCrypto “ a zadejte „ 1 “ jako Údaj hodnoty.
  5. Kliknutím na „ OK “ uložte změny a zkontrolujte, zda problém přetrvává.

Řešení 2: Vynucení použití protokolu TLS 1.2

Pokud byla aplikace nakonfigurována tak, aby místo TLS 1.2 používala TLS 1.1 nebo TLS 1.0, mohla by tuto chybu spustit. Proto v tomto kroku nakonfigurujeme náš počítač tak, aby používal TLS 1.2. Pro to:

  1. Přejděte do kořenového adresáře webu a klikněte pravým tlačítkem na soubor „global.asax“ .
  2. Ze seznamu vyberte „ Zobrazit kód “.
  3. Měla by existovat metoda „ Application_Start “, do této metody přidejte následující řádek kódu
    if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) SecurityProtocolType. Tls12;              
  4. Uložte změny a zkontrolujte, zda problém přetrvává.

Řešení 3: Změna implementace soketu

Pokud má určitá implementace socketu chybu nebo závadu, může to zabránit správnému fungování určitých prvků aplikace, kvůli kterému by mohla být spuštěna tato chyba. Proto jej v tomto kroku nakonfigurujeme tak, aby používal jinou implementaci. Pro to:

  1. Ujistěte se, že máte třídu „ StateObjec t“ s „ public byte [] buffer = nový bajt [1024], public Socket socket; ".
  2. Zavolejte funkci „ Receive (Socket s) “ a volejte následující kód v „ void ReceiveCallback (IAsyncResult ar)
     SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar , out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Po implementaci tohoto kódu zkontrolujte, zda problém přetrvává.

Řešení 4: Přidání příkazových řádků (pouze pro Entity Framework)

Pokud používáte Entity Framework, je možné, že určitý řádek kódu může chybět. Proto v tomto kroku přidáme tento řádek kódu, abychom tento problém vyřešili. Pro to:

  1. Otevřete soubor „ .edmx “ a pod ním otevřete soubor „ .context.tt “.
  2. Otevřete soubor „ .context.cs “ a přidejte do svého konstruktoru následující řádek kódu
     public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Po přidání tohoto řádku kódu zkontrolujte, zda problém přetrvává.

Řešení 5: Aktualizace .NET Framework

Aby vše fungovalo bez problémů, je nutná nejnovější verze rozhraní .NET. V tomto kroku proto stáhneme z webu nejnovější verzi a nainstalujeme ji. Pro to:

  1. Přejděte na tento odkaz a stáhněte si nastavení.
  2. Spusťte soubor „ .exe “, abyste zahájili proces instalace.
  3. Při instalaci aplikace do počítače postupujte podle pokynů na obrazovce.
  4. Zkontrolujte, zda problém přetrvává i po dokončení instalace.

Doporučená

Oprava: Minecraft neodpovídá
Co je aplikace pro registraci zařízení digitální televize a měla by být odstraněna?
Co je FileRepMalware a měli byste jej odebrat