Hogyan javíthatunk egy létező kapcsolatot a távvezérlő által erőszakkal bezárt hiba miatt?
A távoli számítógépnek nincs fizikai jelenléte; csak valamilyen számítógépes hálózaton keresztül érhető el. A Távoli Host az a számítógép, amely a hálózatot tárolja, amely a távoli számítógépet üzemelteti, és a távoli ügyfél a távoli ügyfél felhasználója a hálózaton. Ez a szolgáltatás sok folyamatot forradalmasított, és a jövőben is nagy lehetőségeket kínál.
A közelmúltban azonban sok jelentés érkezett egy „ a távoli gazdagépet erőszakkal megszakított egy létező kapcsolatot ” hibáról, amikor megpróbálták csatlakozni a távoli gazdagéphez. Ezt a hibát az ügyfél és a szerver közötti socketkapcsolat váltja ki. Ebben a cikkben néhány megvalósítható megoldást nyújtunk a hiba teljes kijavítására, és tájékoztatjuk Önt a hiba kiváltó okairól is.
Mi okozza a Windows rendszerben a „A meglévő kapcsolatot erőszakkal bezárta a távoli gazdagép” hibát?
Miután számos jelentést kapott több felhasználótól, úgy döntöttünk, hogy kivizsgáljuk a problémát, és kidolgoztunk egy sor megoldást annak javítására. Ezenkívül megvizsgáltuk az okokat, amelyek miatt ez beindul, és felsoroltuk azokat az alábbiakban.
- TLS 1.1 / 1.0 használat: Ha az alkalmazás a TLS 1.1 vagy a TLS 1.0 rendszeren fut, előfordulhat, hogy az értékcsökkenés miatt hiba jelentkezik. A TLS 1.2 az az út, amikor kiválasztja az alkalmazás által használt protokollt.
- A 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 visszatér a TLS 1.0-ra, ami kiválthatja a hibát.
- Socket implementáció: Egyes esetekben egy socket implementáció egy bizonyos típusa kiváltja a hibát. Van egy hiba néhány „.NET” alkalmazás által végrehajtott megvalósítással, ami ezt a hibát okozhatja.
- Hiányzó kód: Egyeseknél, akik Entitás Keretet használtak, megfigyelték, hogy hiányzik egy bizonyos kódsor, ami miatt a hiba kiváltódott.
- Elavult „.NET” keretrendszer: Egyes esetekben, ha a „.NET” keret le van tiltva, ez a hiba megjelenhet. Bizonyos feladatokhoz a „.NET” keret frissítése a legfrissebb verzióra van szükség annak érdekében, hogy megfelelően működjenek.
Most, hogy alapvető ismeretei vannak a probléma természetéről, továbbmegyünk a megoldások felé. A konfliktusok elkerülése érdekében hajtsa végre ezeket a megadott sorrendben.
1. megoldás: A kriptográfia engedélyezése
Ha a számítógépen a kriptográfia le van tiltva, akkor a TLS 1.2 használata tilos. Ezért ebben a lépésben engedélyezzük a kriptográfiát. Azért:
- Nyomja meg a „ Windows ” + „ R ” gombot a Futtatás parancs megnyitásához.
- Írja be a „regedit” lehetőséget, és nyomja meg az „ Enter ” gombot.
Írja be a „Regedit” menüpontot és nyomja meg az „Enter” gombot - Keresse meg a következő címet
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031
Keresse meg ezt a címet, 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ában kattintson duplán a „ SchUseStrongCrypto ” opcióra, és írja be az „ 1 ” értéket.
Kattintson duplán a jobb oldali ablaktáblán a „SchUseStrongCrypto” értékre - 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ának kényszerítése
Ha az alkalmazást úgy konfigurálták, hogy TLS 1.1 vagy TLS 1.0-t használja a TLS 1.2 helyett, akkor ez előidézheti 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ához. Azért:
- Keresse meg a webhely gyökerét, és kattintson a jobb gombbal a „global.asax” fájlra.
- Válassza a „ View Code ” lehetőséget a listából.
- Léteznie kell egy „ Application_Start ” módszernek, add hozzá a következő kód sort ehhez a módszerhez
if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol
A sorok hozzáadása a kódhoz - Mentse el a módosításokat, és ellenőrizze, hogy a probléma továbbra is fennáll-e.
3. megoldás: A foglalat végrehajtásának megváltoztatása
Ha egy adott aljzat megvalósításában hibát vagy hibát találhat, ez megakadályozhatja az alkalmazás egyes elemeinek megfelelő működését, amelyek miatt ez a hiba megjelenhet. Ezért ebben a lépésben úgy konfiguráljuk, hogy más megvalósítást használjon. Azért:
- Győződjön meg arról, hogy rendelkezik egy „ StateObjec t” osztálytal, amelyen „ public byte [] buffer = new byte [1024], public Socket socket; „.
- Hívja a „ Fogadás (Socket s) ” funkciót, és hívja fel a következő kódot a „ void ReceiveCallback (IAsyncResult ar) ” alatt.
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 Entity Framework számára)
Entitási keretrendszer használata esetén előfordulhat, hogy hiányzik egy bizonyos kódsor. Ezért ebben a lépésben ezt a kódot adjuk hozzá a probléma megoldásához. 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ód sort az építőjéhez
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: .NET-keretrendszer frissítése
A zökkenőmentes működéshez szükség van a .NET-keretrendszer legújabb verziójára. Ezért ebben a lépésben letölti és telepíti a legfrissebb verziót a webhelyről. Azért:
- Keresse meg ezt a linket a telepítés letöltéséhez.
- A telepítési folyamat elindításához hajtsa végre az „ .exe ” fájlt.
A Microsoftból letöltött futtatható program futtatása - Kövesse a képernyőn megjelenő utasításokat az alkalmazás telepítéséhez a számítógépére.
- Ellenőrizze, hogy a probléma továbbra is fennáll-e a telepítés befejezése után.