Kā novērst & lsquo; esošo savienojumu piespiedu kārtā aizvēra attālais resursdators & rsquo; Kļūda?

Attālais dators ir tas, kuram nav fiziskas klātbūtnes; tam var piekļūt tikai caur sava veida datortīklu. Attālais resursdators ir dators, kas mitina tīklu, kurš mitina attālo datoru, un attālais klients ir attālā klienta tīklā lietotājs. Šī funkcija ir daudzus procesus padarījusi revolucionāru, un tai ir liela darbības joma arī nākotnē.

Tomēr pavisam nesen, mēģinot izveidot savienojumu ar attālo resursdatoru , ir saņemts daudz ziņojumu par kļūdu “ Esošo savienojumu piespiedu kārtā aizvēra attālais resursdators ”. Šī kļūda tiek aktivizēta ar kontaktligzdas savienojumu starp klientu un serveri. Šajā rakstā mēs sniegsim dažus dzīvotspējīgus risinājumus, lai pilnībā novērstu šo kļūdu, kā arī informēsim jūs par iemesliem, kas izraisa šo kļūdu.

Kas izraisa Windows kļūdu “Esošo savienojumu piespiedu kārtā aizvēra attālā resursdators”

Pēc vairāku lietotāju daudzu ziņojumu saņemšanas mēs nolēmām izpētīt problēmu un izstrādājām risinājumu kopumu, lai to novērstu. Mēs arī izpētījām iemeslus, kuru dēļ tas tiek aktivizēts, un uzskaitījām tos tālāk.

  • TLS 1.1 / 1.0 lietošana: Ja lietojumprogramma darbojas ar TLS 1.1 vai TLS 1.0, tā var izraisīt šo kļūdu, jo tās ir nolietotas. TLS 1.2 ir veids, kā iet, izvēloties lietojumprogrammas izmantoto protokolu.
  • Kriptogrāfija ir atspējota: ja jūsu mašīnai ir atspējota kriptogrāfija, tas neļaus izmantot TLS 1.2 un paliks atpakaļ uz TLS 1.0, kas varētu izraisīt kļūdu.
  • Ligzdas ieviešana: dažos gadījumos kļūdu izraisa konkrēts ligzdu ieviešanas veids. Ir kļūda ar dažām “.NET” lietojumprogrammas ieviešanām, un tā var izraisīt šo kļūdu.
  • Trūkst koda: Dažiem cilvēkiem, kuri izmantoja Entity Framework, tika novērots, ka trūkst noteiktas koda rindas, kuras dēļ tiek aktivizēta kļūda.
  • Novecojis “.NET” ietvars: Dažos gadījumos, ja “.NET” ietvars ir atspējots, šī kļūda var tikt aktivizēta. Dažiem uzdevumiem, lai pareizi darbotos, “.NET” ietvars ir jāatjaunina uz jaunāko versiju.

Tagad, kad jums ir pamata izpratne par problēmas būtību, mēs virzīsimies uz risinājumiem. Lai izvairītos no konfliktiem, pārliecinieties, vai tie tiek ieviesti noteiktā secībā, kādā tie tiek parādīti.

1. risinājums: kriptogrāfijas iespējošana

Ja jūsu mašīnai ir atspējota kriptogrāfija, TLS 1.2 lietošana ir aizliegta. Tāpēc šajā solī mēs iespējosim kriptogrāfiju. Par to:

  1. Nospiediet “ Windows ” + “ R ”, lai atvērtu uzvedni Run.
  2. Ierakstiet “regedit” un nospiediet “ Enter ”.
  3. Pārejiet uz šo adresi
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ .NETFramework \ v4.0.3031

    Pārejiet uz šo adresi, ja labajā rūtī nav vērtības “ SchUseStrongCrypto ”.

    HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework \ v4.0.30319
  4. Labajā rūtī veiciet dubultklikšķi uz opcijas “ SchUseStrongCrypto ” un kā Vērtības dati ievadiet “ 1 ”.
  5. Noklikšķiniet uz Labi, lai saglabātu izmaiņas, un pārbaudiet , vai problēma joprojām pastāv.

2. risinājums: Piespiest TLS 1.2 lietošanu

Ja lietojumprogramma ir konfigurēta izmantot TLS 1.1 vai TLS 1.0, nevis TLS 1.2, tā var izraisīt šo kļūdu. Tāpēc šajā solī mēs konfigurēsim datoru, lai tas izmantotu TLS 1.2. Par to:

  1. Pārejiet uz vietnes sakni un ar peles labo pogu noklikšķiniet uz faila “global.asax” .
  2. Sarakstā atlasiet “ Skatīt kodu ”.
  3. Jābūt metodei “ Application_Start ”, šai metodei pievienojiet šādu koda rindu
    ja (ServicePointManager. SecurityProtocol. HasFlag (SecurityProtocolType. Tls12) == false) SecurityProtocolType. Tls12;              
  4. Saglabājiet izmaiņas un pārbaudiet , vai problēma joprojām pastāv.

3. risinājums: Socket ieviešanas maiņa

Ja noteiktā kontaktligzdas ieviešanā ir kļūda vai kļūda, tas var novērst noteiktu lietojumprogrammas elementu pareizu darbību, kuru dēļ šī kļūda var tikt aktivizēta. Tāpēc šajā solī mēs to konfigurēsim, lai izmantotu citu ieviešanu. Par to:

  1. Pārliecinieties, vai jums ir klase “ StateObjec t” ar “ public byte [] buffer = new byte [1024], public Socket socket; “.
  2. Izsauciet funkciju “ Saņemt (Socket s) ” un izsauciet šo kodu sadaļā “ void ReceiveCallback (IAsyncResult ar)
     SocketError errorCode ; int nBytesRec = socket . EndReceive ( ar , out errorCode ); if ( errorCode != SocketError . Success ) { nBytesRec = 0 ; } 
  3. Pēc šī koda ieviešanas pārbaudiet, vai problēma joprojām pastāv.

4. risinājums: komandrindu pievienošana (tikai Entity Framework)

Ja izmantojat Entity Framework, iespējams, ka trūkst noteiktas koda rindas. Tāpēc šajā solī mēs pievienosim šo koda rindu, lai novērstu šo problēmu. Par to:

  1. Atveriet “ .edmx ” failu un zem tā atveriet “ .context.tt ” failu.
  2. Atveriet failu “ .context.cs ” un pievienojiet konstruktoram šādu koda rindu
     public DBEntities () : base ( "name=DBEntities" ) { this . Configuration . ProxyCreationEnabled = false ; // ADD THIS LINE ! } 
  3. Pēc šīs koda rindas pievienošanas pārbaudiet, vai problēma joprojām pastāv.

5. risinājums: .NET Framework atjaunināšana

Lai viss darbotos nevainojami, ir nepieciešama jaunākā “.NET” ietvara versija. Tāpēc šajā solī mēs lejupielādēsim jaunāko versiju no vietnes un instalēsim to. Par to:

  1. Pārejiet uz šo saiti, lai lejupielādētu iestatīšanu.
  2. Izpildiet “ .exe ” failu, lai sāktu instalēšanas procesu.
  3. Izpildiet ekrānā redzamos norādījumus, lai instalētu lietojumprogrammu savā datorā.
  4. Pēc instalēšanas pārbaudiet , vai problēma joprojām pastāv.