Kako popraviti grešku udaljenog računala prisilno je zatvorila postojeću vezu?

Računalo je udaljeno ono bez fizičke prisutnosti; njemu se može pristupiti samo kroz neku vrstu računalne mreže. Udaljeni domaćin je računalo koje ugošćuje mrežu u kojoj se nalazi udaljeno računalo, a udaljeni klijent je korisnik udaljenog klijenta na mreži. Ova značajka revolucionirala je mnoge procese i ima veliki opseg u budućnosti.

Postojeću vezu prisilno je zatvorila pogreška lokalnog računala

No, odnedavno je pristiglo mnoštvo izvještaja o postojanju greške " postojeću vezu koju je daljinski domaćin prisilno zatvorio " dok se pokušavala povezati s udaljenim hostom. Ova se pogreška aktivira socket vezom između klijenta i poslužitelja. U ovom ćemo članku pružiti neka održiva rješenja za potpuno ispravljanje ove pogreške, a također ćemo vas obavijestiti o razlozima koji pokreću ovu pogrešku.

Što uzrokuje pogrešku udaljenog računala "Prisutna je veza prisilno zatvorena" u sustavu Windows?

Nakon što smo primili brojne izvještaje od više korisnika, odlučili smo istražiti problem i osmislili skup rješenja kako ga riješiti. Također, razmotrili smo razloge zbog kojih se pokreće i naveli ih u nastavku.

  • TLS 1.1 / 1.0 Upotreba: Ako se aplikacija izvodi na TLS 1.1 ili TLS 1.0, može pokrenuti ovu pogrešku zbog amortizacije. TLS 1.2 je put koji treba odabrati pri odabiru protokola koji aplikacija koristi.
  • Kriptografija je onemogućena: Ako je kriptografija onemogućena za vaš uređaj, spriječit će upotrebu TLS 1.2 i ponovno će pasti na TLS 1.0 što može dovesti do pogreške.
  • Provedba utičnice: U nekim slučajevima određena vrsta implementacije utičnice pokreće pogrešku. Postoji greška s nekim implementacijama od strane .NET aplikacije i to može uzrokovati ovu pogrešku.
  • Nedostaje kod: Kod nekih ljudi koji su koristili entitetski okvir primijećeno je da nedostaje određeni redak koda zbog kojeg se aktivirala greška.
  • Zastarjeli ".NET" okvir: U određenim slučajevima, ako je .NET. Okvir onemogućen, može se aktivirati ova pogreška. Određeni zadaci zahtijevaju ažuriranje okvira. NET na najnoviju verziju kako bi ispravno radili.

Sada kada imate osnovno razumijevanje prirode problema, krenut ćemo prema rješenjima. Obavezno ih implementirajte posebnim redoslijedom kojim su predstavljeni kako biste izbjegli sukobe.

1. rješenje: omogućavanje kriptografije

Ako je kriptografija onemogućena za vaš uređaj, upotreba TLS 1.2 je zabranjena. Stoga ćemo u ovom koraku omogućiti kriptografiju. Za to:

  1. Pritisnite " Windows " + " R " da biste otvorili prompt Run.
  2. Unesite "regedit" i pritisnite " Enter ".

    Utipkajte "Regedit" i pritisnete "Enter"
  3. Dođite do sljedeće adrese
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Dođite do ove adrese ako u desnom oknu nema vrijednosti " SchUseStrongCrypto ".

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. U desnom oknu dvaput kliknite na opciju " SchUseStrongCrypto " i unesite " 1 " kao Vrijednosti podataka.

    Dvaput kliknite na vrijednost "SchUseStrongCrypto" u desnom oknu
  5. Kliknite na " OK " da biste spremili promjene i provjerili da li problem i dalje postoji.

2. rješenje: prisiljavanje na upotrebu TLS 1.2

Ako je aplikacija konfigurirana za korištenje TLS 1.1 ili TLS 1.0 umjesto TLS 1.2, može pokrenuti ovu pogrešku. Stoga ćemo u ovom koraku konfigurirati svoje računalo za upotrebu TLS 1.2. Za to:

  1. Otvorite korijen web mjesta i desnom tipkom miša kliknite datoteku "global.asax" .
  2. Odaberite " View Code " s popisa.
  3. Trebao bi postojati metoda " Application_Start ", dodajte sljedeću liniju koda toj metodi
     ako (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. SecurityProtocol 

    Dodavanje linija kôdu
  4. Spremite svoje promjene i provjerite nastaje li problem.

3. rješenje: Promjena implementacije utičnice

Ako određena implementacija utičnice ima grešku ili propust u sebi, to može spriječiti da neki elementi aplikacije pravilno funkcioniraju zbog čega se može pokrenuti ova pogreška. Stoga ćemo u ovom koraku konfigurirati za upotrebu drugačije implementacije. Za to:

  1. Provjerite imate li klasu " StateObjec t" s " javni bajt [] međuspremnik = novi bajt [1024], javna socket socket; „.
  2. Nazovite funkciju " Primanje (socket s) " i nazovite sljedeći kôd u " poništi ReceiveCallback (IAsyncResult ar) "
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Provjerite postoji li problem i nakon primjene ovog koda.

4. rješenje: Dodavanje naredbenih linija (samo za entitetski okvir)

Ako koristite Entitetski okvir, moguće je da određeni redak koda možda nedostaje. Stoga ćemo u ovom koraku dodati tu liniju koda kako bismo riješili taj problem. Za to:

  1. Otvorite datoteku " .edmx " i ispod nje otvorite datoteku " .context.tt ".
  2. Otvorite datoteku " .context.cs " i dodajte sljedeći redak koda svom konstruktoru
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Provjerite je li problem i dalje prisutan nakon dodavanja ovog retka koda.

5. rješenje: Ažuriranje .NET Framework-a

Najnovija verzija okvira. .NET potrebna je kako bi sve nesmetano moglo funkcionirati. Stoga ćemo u ovom koraku preuzeti najnoviju verziju sa stranice i instalirati je. Za to:

  1. Dođite do te veze kako biste preuzeli postavljanje.
  2. Izvršite datoteku " .exe " kako biste započeli postupak instalacije.

    Pokretanje izvršne datoteke preuzete s Microsofta
  3. Slijedite upute na zaslonu da biste instalirali aplikaciju na svoje računalo.
  4. Provjerite ima li problema i nakon dovršetka instalacije.

Zanimljivi Članci