Kako popraviti "napako oddaljenega gostitelja", da je obstoječo povezavo prisilno zaprl?

Oddaljeni računalnik je tisti, ki nima fizične prisotnosti; Do njega lahko dostopate le 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 lastnost je revolucionirala veliko procesov in ima velik obseg tudi v prihodnosti.

Obstoječo povezavo je prisilno zaprla napaka lokalnega gostitelja

Vendar pa je pred kratkim prišlo do številnih poročil o napaki » obstoječa povezava, ki jo je prisilno zaprl oddaljeni gostitelj «, ko se je poskušala povezati z oddaljenim gostiteljem. Ta napaka se sproži s povezavo vtičnice med odjemalcem in strežnikom. V tem članku bomo dali nekaj izvedljivih rešitev za popolno odpravo te napake in vas tudi obvestili o razlogih, ki povzročajo to napako.

Kaj povzroča, da je "Oddaljeno povezavo prisilno zaprl oddaljeni gostitelj" Napaka v sistemu Windows?

Po prejemu številnih poročil več uporabnikov smo se odločili, da bomo težavo raziskali in zasnovali niz rešitev, da jo odpravimo. Prav tako smo preučili razloge, zaradi katerih se sproži, in jih našteli spodaj.

  • Uporaba TLS 1.1 / 1.0: Če aplikacija deluje na TLS 1.1 ali TLS 1.0, lahko to napako sproži zaradi njihove amortizacije. TLS 1.2 je pot pri izbiri protokola, ki ga uporablja aplikacija.
  • Kriptografija je onemogočena: Če je kriptografija za vašo napravo onemogočena, bo preprečila uporabo TLS 1.2 in padla nazaj na TLS 1.0, kar lahko sproži napako.
  • Izvedba vtičnice: V nekaterih primerih določena vrsta implementacije vtičnice sproži napako. Napaka je z nekaterimi izvedbami programa .NET. To lahko povzroči to napako.
  • Manjkajoča koda: Pri nekaterih ljudeh, ki so uporabljali entitetni okvir, so opazili, da manjka določena vrstica kode, zaradi katere se je sprožila napaka.
  • Zastarel okvir „.NET“: V nekaterih primerih, če je okvir „.NET“ onemogočen, se lahko ta napaka sproži. Nekatere naloge zahtevajo, da se okvir. .NET posodobi na najnovejšo različico, da lahko pravilno delujejo.

Zdaj, ko boste razumeli naravo problema, bomo nadaljevali z rešitvami. Prepričajte se, da jih izvajate v določenem vrstnem redu, v katerem so predstavljeni, da se izognete konfliktom.

1. rešitev: omogočanje kriptografije

Če je za vaš stroj 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 Run.
  2. Vnesite "regedit" in pritisnite " Enter ".

    Vtipkajte »Regedit« in pritisnite »Enter«
  3. Pojdite na naslednji naslov
     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 dvakrat kliknite na možnost " SchUseStrongCrypto " in vnesite " 1 " kot vrednostni podatki.

    Dvakrat kliknite na vrednost »SchUseStrongCrypto« v desnem podoknu
  5. Če želite shraniti spremembe, kliknite » V redu « in preverite, ali se težava še vedno pojavlja.

2. rešitev: Uporaba prisilne uporabe TLS 1.2

Če je aplikacija konfigurirana za uporabo TLS 1.1 ali TLS 1.0 namesto TLS 1.2, lahko sproži to napako. Zato bomo v tem koraku konfigurirali računalnik 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 » Prikaži kodo «.
  3. Obstajati mora metoda " Application_Start ", tej metodi dodajte naslednjo vrstico kode
     če (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. VarnostProtocol 

    Dodajanje vrstic v kodo
  4. Shranite spremembe in preverite, ali se težava še vedno pojavlja.

3. rešitev: Spreminjanje izvedbe vtičnic

Če ima določena izvedba vtičnice napako ali napako v njej, lahko prepreči, da bi nekateri elementi aplikacije pravilno delovali, zaradi česar se lahko sproži ta napaka. V tem koraku ga bomo konfigurirali tako, da bo uporabil drugačno izvedbo. Za to:

  1. Prepričajte se, da imate razred " StateObjec t" z " javni bajt [] pufer = nov bajt [1024], javna vtičnica Socket; ".
  2. Pokličite funkcijo " Prejemanje (vtičnice) " in pokličite naslednjo kodo v razveljavitvi ReceiveCallback (IAsyncResult ar) "
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Po uveljavitvi te kode preverite, ali se težava še naprej pojavlja.

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

Če uporabljate Entity Framework, je morda manjkalo določeno vrstico kode. Zato bomo v tem koraku dodali to vrstico kode, da bi odpravili to težavo. Za to:

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

5. rešitev: Posodabljanje .NET Framework

Najnovejša različica okvira. .NET je potrebna, da bi vse nemoteno delovalo. Zato bomo v tem koraku s spletnega mesta prenesli zadnjo različico in jo namestili. Za to:

  1. Pojdite na to povezavo in naložite nastavitev.
  2. Izvedite datoteko " .exe ", da začnete postopek namestitve.

    Zagon izvršljive datoteke, ki jo je naložil Microsoft
  3. Sledite navodilom na zaslonu, da namestite aplikacijo v računalnik.
  4. Po zaključku namestitve preverite, ali se težava še naprej pojavlja.

Zanimivi Članki