Kako popraviti & lsquo; Oddaljeni gostitelj je prisilno zaprl obstoječo povezavo & rsquo; Napaka?

Oddaljeni računalnik je tisti, ki ni fizično prisoten; do njega je mogoče dostopati samo prek neke vrste računalniškega omrežja. Oddaljeni gostitelj je računalnik, ki gosti omrežje, ki gosti oddaljeni računalnik, oddaljeni odjemalec pa je uporabnik oddaljenega odjemalca v omrežju. Ta funkcija je revolucionirala veliko procesov in ima velik obseg tudi v prihodnosti.

Vendar pa v zadnjem času prihaja veliko poročil o napaki » obstoječo povezavo je prisilno zaprl oddaljeni gostitelj « med poskusom povezave z oddaljenim gostiteljem. Ta napaka se sproži s povezavo vtičnice med odjemalcem in strežnikom. V tem članku bomo našli nekaj izvedljivih rešitev za popolno odpravo te napake in vas obvestili tudi o razlogih, ki sprožijo to napako.

Kaj povzroča napako »Obstoječo povezavo je prisilno zaprl oddaljeni gostitelj« v sistemu Windows?

Po prejemu številnih poročil več uporabnikov smo se odločili, da bomo težavo raziskali in oblikovali nabor rešitev, ki jo bodo odpravili. Preučili smo tudi razloge, zaradi katerih se sproži, in jih spodaj navedli.

  • Uporaba TLS 1.1 / 1.0: Če se aplikacija izvaja na TLS 1.1 ali TLS 1.0, lahko povzroči napako zaradi njihove amortizacije. TLS 1.2 je prava pot pri izbiri protokola, ki ga uporablja aplikacija.
  • Kriptografija onemogočena: Če je kriptografija za vaš računalnik onemogočena, bo preprečila uporabo TLS 1.2 in se bo vrnila na TLS 1.0, kar bi lahko sprožilo napako.
  • Implementacija vtičnice: V nekaterih primerih napaka sproži določena vrsta izvedbe vtičnice. Pri nekaterih izvedbah aplikacije .NET je prišlo do napake, ki bi lahko povzročila to napako.
  • Manjkajoča koda: Pri nekaterih ljudeh, ki so uporabljali Entity Framework, je bilo ugotovljeno, da manjka določena vrstica kode, zaradi katere je bila napaka sprožena.
  • Zastarel okvir .NET. V nekaterih primerih, če je ogrodje ».NET« onemogočen, se lahko ta napaka sproži. Nekatere naloge zahtevajo, da se ogrodje .NET posodobi na najnovejšo različico, da lahko pravilno deluje.

Zdaj, ko dobro razumete naravo problema, bomo šli naprej k rešitvam. Poskrbite, da jih boste uporabili v določenem vrstnem redu, v katerem so predstavljeni, da se izognete konfliktom.

Rešitev 1: Omogočanje kriptografije

Če je za vaš računalnik onemogočena kriptografija, je uporaba TLS 1.2 prepovedana. Zato bomo v tem koraku omogočili kriptografijo. Za to:

  1. Pritisnite “ Windows ” + “ R ”, da odprete poziv za zagon.
  2. Vnesite "regedit" in pritisnite " Enter ".
  3. Pomaknite se do naslednjega naslova
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031

    Pojdite na ta naslov, če v desnem podoknu ni vrednosti » SchUseStrongCrypto «.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319
  4. V desnem podoknu dvokliknite možnost » SchUseStrongCrypto « in kot vrednost vrednosti vnesite » 1 «.
  5. Kliknite » V redu «, da shranite spremembe in preverite, ali težava še vedno obstaja.

Rešitev 2: Prisiljevanje uporabe TLS 1.2

Če je bila aplikacija konfigurirana za uporabo TLS 1.1 ali TLS 1.0 namesto TLS 1.2, lahko povzroči to napako. V tem koraku bomo torej računalnik konfigurirali za uporabo TLS 1.2. Za to:

  1. Pomaknite se do korena spletnega mesta in z desno miškino tipko kliknite datoteko »global.asax« .
  2. Na seznamu izberite “ View Code ”.
  3. Obstajati mora metoda " Application_Start ", ki ji dodajte naslednjo vrstico kode
    if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) SecurityProtocolType. Tls12;              
  4. Shranite spremembe in preverite, ali težava še vedno obstaja.

Rešitev 3: Spreminjanje izvedbe vtičnice

Če je v določeni izvedbi vtičnice napaka ali napaka, lahko prepreči pravilno delovanje nekaterih elementov aplikacije, zaradi česar bi se ta napaka lahko sprožila. Zato ga bomo v tem koraku konfigurirali tako, da bo uporabil drugačno izvedbo. Za to:

  1. Prepričajte se, da imate razred “ StateObjec t” z “ javnim bajtom [] medpomnilnik = nov bajt [1024], javna vtičnica vtičnice; “.
  2. Pokličite funkcijo » Receive (Socket s) « in pokličite naslednjo kodo v » void ReceiveCallback (ar IAsyncResult) «
     SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar , out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Preverite, ali se težava po uvedbi te kode nadaljuje.

Rešitev 4: Dodajanje ukaznih vrstic (samo za entitetni okvir)

Če uporabljate Entity Framework, obstaja možnost, da manjka določena vrstica kode. Zato bomo v tem koraku dodali to vrstico kode, da bomo odpravili to težavo. Za to:

  1. Odprite datoteko » .edmx « in pod njo odprite datoteko » .context.tt «.
  2. Odprite datoteko " .context.cs " in v konstruktor dodajte naslednjo vrstico kode
     public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Preverite, ali se težava po dodajanju te vrstice kode nadaljuje.

5. rešitev: Posodabljanje .NET Framework

Za nemoteno delovanje vsega je potrebna najnovejša različica “.NET” Framework. Zato bomo v tem koraku s spletnega mesta prenesli najnovejšo različico in jo namestili. Za to:

  1. Pojdite na to povezavo, da prenesete namestitev.
  2. Zaženite datoteko » .exe «, da začnete postopek namestitve.
  3. Sledite navodilom na zaslonu za namestitev aplikacije v računalnik.
  4. Preverite, ali se težava po namestitvi še vedno pojavlja.

Priporočena

Popravek: Minecraft se ne odziva
Kaj je aplikacija za registracijo naprave za digitalni TV sprejemnik in jo je treba odstraniti?
Kaj je FileRepMalware in ali ga morate odstraniti