Kaip ištaisyti esamą ryšį, kurį priverstinai uždarė nuotolinio kompiuterio klaida?

Nuotolinis kompiuteris yra tas, kurio fiziškai nėra; prie jo galima prisijungti tik per kokį nors kompiuterinį tinklą. Nuotolinis kompiuteris yra kompiuteris, kuriame yra tinklas, kuriame yra nuotolinis kompiuteris, o nuotolinis klientas yra nuotolinio kliento tinkle vartotojas. Ši savybė sukėlė revoliuciją daugelyje procesų ir ateityje taip pat plačiai pritaikyta.

Esamas ryšys buvo priverstinai uždarytas dėl vietinio kompiuterio klaidos

Tačiau visai neseniai gauta pranešimų apie klaidą „ esamas ryšys buvo priverstinai uždarytas dėl nuotolinio kompiuterio “, bandant prisijungti prie nuotolinio kompiuterio. Ši klaida atsiranda jungiant lizdą tarp kliento ir serverio. Šiame straipsnyje pateiksime keletą perspektyvių sprendimų, kaip visiškai ištaisyti šią klaidą, taip pat informuosime jus apie priežastis, kurios sukelia šią klaidą.

Kas sukelia „Esamą ryšį priverstinai uždarė nuotolinis kompiuteris“ klaidą sistemoje „Windows“?

Gavę daugybę pranešimų iš daugelio vartotojų, nusprendėme ištirti šią problemą ir sukūrėme sprendimų rinkinį, kaip ją išspręsti. Be to, mes ištyrėme priežastis, dėl kurių ji suveikia, ir išvardijome jas žemiau.

  • TLS 1.1 / 1.0 naudojimas: Jei programa veikia TLS 1.1 arba TLS 1.0, ji gali sukelti šią klaidą dėl jų nusidėvėjimo. TLS 1.2 yra kelias, kurį reikia pasirinkti renkantis protokolą, kurį naudoja programa.
  • Kriptografija neleidžiama: jei šifravimas jūsų kompiuteryje buvo išjungtas, bus užkirstas kelias naudoti TLS 1.2 ir vėl bus naudojamas TLS 1.0, kuris gali sukelti klaidą.
  • Lizdo diegimas: Kai kuriais atvejais klaidą sukelia tam tikras lizdo įdiegimo tipas. Yra klaidų, susijusių su kai kuriais „.NET“ programos diegimais, ir tai gali sukelti šią klaidą.
  • Trūksta kodo: Kai kuriems žmonėms, kurie naudojosi „Entity Framework“, buvo pastebėta, kad trūksta tam tikros kodo eilutės, dėl kurios buvo suveikta klaida.
  • Pasenusi „.NET“ sistema: Tam tikrais atvejais, jei „.NET“ sistema buvo išjungta, ši klaida gali būti suaktyvinta. Tam tikroms užduotims reikia, kad „.NET“ sistema būtų atnaujinta iki naujausios versijos, kad jos tinkamai veiktų.

Dabar, kai jūs suprantate problemos pobūdį, pereisime prie sprendimų. Įsitikinkite, kad įgyvendinate juos tam tikra tvarka, kokia jie pateikiami, kad išvengtumėte konfliktų.

1 sprendimas: įgalinama kriptografija

Jei kriptografija jūsų kompiuteryje buvo išjungta, naudoti TLS 1.2 draudžiama. Todėl šiame žingsnyje mes įgalinsime kriptografiją. Už tai:

  1. Norėdami atidaryti „Run“ raginimą, paspauskite „ Windows “ + „ R “.
  2. Įveskite „regedit“ ir paspauskite „ Enter “.

    Įveskite „Regedit“ ir paspauskite „Enter“
  3. Eikite į šį adresą
     HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031 

    Eikite į šį adresą, jei dešinėje srityje nėra vertės „ SchUseStrongCrypto “.

     HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319 
  4. Dešinėje srityje dukart spustelėkite parinktį „ SchUseStrongCrypto “ ir įveskite „ 1 “ kaip vertės duomenis.

    Du kartus spustelėkite „SchUseStrongCrypto“ reikšmę dešinėje srityje
  5. Spustelėkite „ Gerai “, kad išsaugotumėte pakeitimus, ir patikrinkite, ar problema išlieka.

2 sprendimas: Priversti naudoti TLS 1.2

Jei programa sukonfigūruota naudoti TLS 1.1 arba TLS 1.0, o ne TLS 1.2, ji gali suaktyvinti šią klaidą. Todėl šiame žingsnyje sukonfigūruosime kompiuterį naudoti TLS 1.2. Už tai:

  1. Eikite į svetainės šaknį ir dešiniuoju pelės mygtuku spustelėkite failą „global.asax“ .
  2. Iš sąrašo pasirinkite „ View Code “.
  3. Turėtų būti metodas „ Application_Start “, pridėkite šią kodo eilutę prie to metodo
     if (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) ServicePointManager. SecurityProtocol = ServicePointManager. Saugumo protokolas 

    Pridedant eilutes prie kodo
  4. Išsaugokite pakeitimus ir patikrinkite, ar problema išlieka.

3 sprendimas: lizdo diegimo keitimas

Jei tam tikrame lizdo diegime yra klaida ar trūkumų, tai gali užkirsti kelią tam tikriems programos elementams tinkamai veikti, dėl kurių gali atsirasti ši klaida. Todėl šiame žingsnyje mes sukonfigūruosime jį naudoti kitokį įgyvendinimą. Už tai:

  1. Įsitikinkite, kad turite „ StateObjec t“ klasę su „ viešojo baito [] buferis = naujas baitas [1024], viešojo lizdo lizdas; “.
  2. Paskambinkite į funkciją „ Gauti (lizdai) “ ir paskambinkite šiuo kodu į „ void ReceiveCallback (IAsyncResult ar) “ kodą.
      SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar, out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Įdiegę šį kodą patikrinkite, ar problema išlieka.

4 sprendimas: komandų eilučių pridėjimas (tik „Entity Framework“)

Jei naudojate „Entity Framework“, gali būti, kad trūksta tam tikros kodo eilutės. Todėl šiame žingsnyje pridėsime tą kodo eilutę, kad išspręstume šią problemą. Už tai:

  1. Atidarykite „ .edmx “ failą ir po juo atidarykite „ .context.tt “ failą.
  2. Atidarykite failą „ .context.cs “ ir pridėkite šią kodą prie savo konstruktoriaus
      public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Pridėję šią kodo eilutę patikrinkite, ar problema išlieka.

5 sprendimas: .NET Framework atnaujinimas

Norint, kad viskas vyktų sklandžiai, reikalinga naujausia „.NET“ sistemos versija. Todėl šiame žingsnyje iš svetainės atsisiųsime naujausią versiją ir ją įdiegsime. Už tai:

  1. Norėdami atsisiųsti sąranką, eikite į šią nuorodą.
  2. Vykdykite „ .exe “ failą, kad pradėtumėte diegimo procesą.

    Paleiskite vykdomąjį failą, atsisiųstą iš „Microsoft“
  3. Vykdykite ekrane pateikiamus nurodymus, kad įdiegtumėte programą į savo kompiuterį.
  4. Patikrinkite, ar problema išlieka po baigimo diegti.

Įdomios Straipsniai