A távoli számítógép az, amelyiknek nincs fizikai jelenléte; csak valamilyen számítógépes hálózaton keresztül érhető el. A Távoli hoszt az a számítógép, amelyik otthont ad a hálózatnak, és amely távoli kliens a távoli kliens felhasználója a hálózaton. Ez a funkció rengeteg folyamatot forradalmasított, és a jövőben is nagy hatókörrel rendelkezik.
A közelmúltban azonban nagyon sok jelentés érkezett arról, hogy „ a távoli állomás erőszakkal zárt le egy meglévő kapcsolatot ” hiba történt, miközben megpróbált csatlakozni a távoli gazdagéphez. Ezt a hibát az ügyfél és a szerver közötti socket kapcsolat váltja ki. Ebben a cikkben bemutatunk néhány életképes megoldást a hiba teljes kijavítására, valamint tájékoztatjuk Önt a hiba kiváltó okairól is.
Mi okozza a Windowsban a „Meglévő kapcsolatot erőteljesen lezárta a távoli gazdagép” hibát?
Miután több felhasználótól számos jelentést kaptunk, úgy döntöttünk, hogy kivizsgáljuk a problémát, és megoldások sorát dolgoztuk ki a probléma megoldására. Ezenkívül megvizsgáltuk az okokat, amelyek miatt kiváltotta, és az alábbiakban felsoroltuk őket.
- TLS 1.1 / 1.0 Használat: Ha az alkalmazás TLS 1.1 vagy TLS 1.0 rendszeren fut, akkor az amortizáció miatt kiválthatja ezt a hibát. A TLS 1.2 az út, amikor az alkalmazás által használt protokollt kell kiválasztani.
- Kriptográfia letiltva: Ha a kriptográfia le van tiltva a gépén, akkor megakadályozza a TLS 1.2 használatát, és visszaesik a TLS 1.0-ra, ami kiválthatja a hibát.
- Socket implementáció: Bizonyos esetekben a socket implementáció egy bizonyos típusa váltja ki a hibát. Van egy hiba a „.NET” alkalmazás néhány megvalósításával, és ez okozhatja ezt a hibát.
- Hiányzó kód: Néhány ember számára, aki az Entity Framework-et használta, megfigyelték, hogy hiányzik egy bizonyos kódsor, ami miatt a hibát kiváltják.
- Elavult „.NET” keretrendszer: Bizonyos esetekben, ha a „.NET” keretrendszert letiltották, előfordulhat, hogy ez a hiba kiváltható. Bizonyos feladatok megkövetelik a „.NET” keretrendszer frissítését a legújabb verzióra a megfelelő működés érdekében.
Most, hogy alaposan megértette a probléma természetét, továbblépünk a megoldások felé. Ügyeljen arra, hogy ezeket a bemutatásuk sorrendjében hajtsa végre a konfliktusok elkerülése érdekében.
1. megoldás: A kriptográfia engedélyezése
Ha a titkosítást letiltották a gépén, akkor a TLS 1.2 használata tilos. Ezért ebben a lépésben engedélyezni fogjuk a kriptográfiát. Azért:
- Nyomja meg a „ Windows ” + „ R ” gombot a Futtatás parancs megnyitásához.
- Írja be a „regedit” szót, és nyomja meg az „ Enter ” billentyűt .
- Navigáljon a következő címre
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031
Navigáljon erre a címre, ha a jobb oldali ablaktáblában nincs „ SchUseStrongCrypto ” érték.
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319
- A jobb oldali ablaktáblán kattintson duplán a „ SchUseStrongCrypto ” opcióra, és írja be az „ 1 ” értékadatot .
- Kattintson az „ OK ” gombra a módosítások mentéséhez és ellenőrizze , hogy a probléma továbbra is fennáll-e.
2. megoldás: A TLS 1.2 használat kényszerítése
Ha az alkalmazás a TLS 1.1 vagy a TLS 1.0 használatára van beállítva a TLS 1.2 helyett, ez kiválthatja ezt a hibát. Ezért ebben a lépésben konfiguráljuk számítógépünket a TLS 1.2 használatára. Azért:
- Keresse meg a webhely gyökerét, és kattintson a jobb gombbal a „global.asax” fájlra.
- Válassza a „ Kód megtekintése ” lehetőséget a listából.
- Kell lennie egy „ Application_Start ” metódusnak, adja hozzá a következő kódsort ehhez a metódushoz
if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == hamis) SecurityProtocolType. Tls12;
- Mentse el a módosításokat, és ellenőrizze , hogy a probléma továbbra is fennáll-e.
3. megoldás: A Socket megvalósításának módosítása
Ha egy bizonyos socket implementációban hiba vagy hiba van, akkor ez megakadályozhatja az alkalmazás bizonyos elemeinek megfelelő működését, ami miatt ez a hiba kiváltható. Ezért ebben a lépésben egy másik megvalósítás használatára konfiguráljuk. Azért:
- Győződjön meg arról, hogy rendelkezik „ StateObjec t” osztályral, a „ public byte [] buffer = new byte [1024], public Socket socket; “.
- Hívja meg a „ Fogadás (Socket s) ” funkciót, és hívja meg a következő kódot a „ void ReceiveCallback (IAsyncResult ar) ” részben.
SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar , out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; }
- Ellenőrizze, hogy a probléma továbbra is fennáll-e a kód végrehajtása után.
4. megoldás: Parancssorok hozzáadása (csak az Entity Framework számára)
Az Entity Framework használata esetén elképzelhető, hogy hiányzik egy bizonyos kódsor. Ezért ebben a lépésben hozzáadjuk azt a kódsort a probléma megoldása érdekében. Azért:
- Nyissa meg a .edmx fájlt, és nyissa meg az alatta található .context.tt fájlt.
- Nyissa meg a „ .context.cs ” fájlt, és adja hozzá a következő kódsort a konstruktorához
public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! }
- Ellenőrizze, hogy a probléma továbbra is fennáll-e a kódsor hozzáadása után.
5. megoldás: A .NET-keretrendszer frissítése
A „.NET” keretrendszer legújabb verziójára van szükség annak érdekében, hogy minden zökkenőmentesen működhessen. Ezért ebben a lépésben a legfrissebb verziót töltjük le a webhelyről, és telepítjük. Azért:
- A beállítás letöltéséhez keresse meg ezt a linket.
- Futtassa az “ .exe ” fájlt a telepítés megkezdéséhez.
- Az alkalmazás telepítéséhez kövesse a képernyőn megjelenő utasításokat.
- Ellenőrizze , hogy a probléma továbbra is fennáll-e a telepítés befejezése után.